当前位置: 首页>>代码示例>>C++>>正文


C++ KateView类代码示例

本文整理汇总了C++中KateView的典型用法代码示例。如果您正苦于以下问题:C++ KateView类的具体用法?C++ KateView怎么用?C++ KateView使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了KateView类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: testSelectionUndo

void UndoManagerTest::testSelectionUndo()
{
  TestDocument doc;
  KateView *view = static_cast<KateView*>(doc.createView(0));

  doc.setText("aaaa bbbb cccc\n"
              "dddd eeee ffff");
  view->setCursorPosition(KTextEditor::Cursor(1, 9));
  KTextEditor::Range selectionRange(KTextEditor::Cursor(0, 5),
                                    KTextEditor::Cursor(1, 9));
  view->setSelection(selectionRange);

  doc.typeChars(view, "eeee");

  // cursor position: "aaaa eeee| ffff", no selection anymore
  QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(0, 9));
  QCOMPARE(view->selection(), false);

  // undo to remove "eeee" and add selection and text again
  doc.undo();
  QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(1, 9));
  QCOMPARE(view->selection(), true);
  QCOMPARE(view->selectionRange(), selectionRange);

  // redo to insert "eeee" again and remove selection
  // cursor position: "aaaa eeee| ffff", no selection anymore
  doc.redo();
  QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(0, 9));
  QCOMPARE(view->selection(), false);

  delete view;
}
开发者ID:DevMaggio,项目名称:qodeedit,代码行数:32,代码来源:undomanager_test.cpp

示例2: doc

//
// when text is folded, and you set the text selection from top to bottom and
// type a character, the resulting text is borked.
//
// See https://bugs.kde.org/show_bug.cgi?id=295632
//
void KateFoldedSelectionTest::foldedSelectionTest()
{
    KateDocument doc(false, false, false);
    QString text = "oooossssssss\n"
                   "{\n"
                   "\n"
                   "}\n"
                   "ssssss----------";
    doc.setText(text);
    doc.setHighlightingMode("C++");
    doc.buffer().ensureHighlighted (doc.lines());

    // view must be visible...
    KateView* view = static_cast<KateView*>(doc.createView(0));
    view->show();
    view->resize(400, 300);

    QTest::qWait(500);
    doc.foldingTree()->collapseOne(1, 1);
    QTest::qWait(500);

    view->setSelection(Range(Cursor(0,4), Cursor(4, 6)));
    view->setCursorPosition(Cursor(4, 6));

    QTest::qWait(500);
    doc.typeChars(view, "x");
    QTest::qWait(500);

    QString line = doc.line(0);
    QCOMPARE(line, QString("oooox----------"));
}
开发者ID:seem-sky,项目名称:qodeedit,代码行数:37,代码来源:foldedselection_test.cpp

示例3: stream

void KateFoldingTest::testFolding_py_lang()
{
  KTemporaryFile file;
  file.setSuffix(".py");
  file.open();
  QTextStream stream(&file);
  stream << "if customerName == x\n"
         << "  print x\n"
         << "elif customerName == y\n"
         << "  print y\n"
         << "else print z\n";
  stream << flush;
  file.close();

  KateDocument doc(false, false, false);
  QVERIFY(doc.openUrl(KUrl(file.fileName())));

  KateView* view = new KateView(&doc, 0);

  // is set to allow kate's hl to be called
  view->config()->setDynWordWrap(true);

  QCOMPARE(doc.visibleLines(), 6u);

  QAction* action = view->action("folding_toplevel");
  QVERIFY(action);
  action->trigger();
  QCOMPARE(doc.visibleLines(), 4u);

  action = view->action("folding_expandtoplevel");
  QVERIFY(action);
  action->trigger();
  QCOMPARE(doc.visibleLines(), 6u);
}
开发者ID:UIKit0,项目名称:kate,代码行数:34,代码来源:katefolding_test.cpp

示例4: checkSave

bool TinyKate::checkSave() {
    if (currentView==0) return true;

    KateView *kv = (KateView*) currentView;
    if(kv->isModified()) {
        KateDocument *kd = (KateDocument*) kv->document();
        switch( QMessageBox::information( 0, (tr("TinyKATE")),
                                        (tr("Do you want to save\n"
                                            "changes to the document\n"
                                            "%1?\n").arg(kd->docName())),
                                        (tr("Save")), (tr("Don't Save")), (tr("&Cancel")), 2, 2 ) )
        {
            case 0:
            {
                return saveDocument();
            }
            break;

            case 1:
            {
                return true;
            }
            break;

            default:
            {
                return false;
            }
            break;
        };
    }
    else {
        return true;
    }
}
开发者ID:opieproject,项目名称:opie,代码行数:35,代码来源:tinykate.cpp

示例5: doc

// This test makes sure that,
// - if you have selected text
// - that spans a folded range,
// - and the cursor is at the end of the text selection,
// - and you type a char, e.g. 'x',
// then the resulting text is correct, and changing region
// visibility does not mess around with the text cursor.
//
// See https://bugs.kde.org/show_bug.cgi?id=295632
void KateFoldingTest::testBug295632()
{
  KateDocument doc(false, false, false);
  QString text = "oooossssssss\n"
                 "{\n"
                 "\n"
                 "}\n"
                 "ssssss----------";
  doc.setText(text);
  
  // view must be visible...
  KateView* view = static_cast<KateView*>(doc.createView(0));
  view->show();
  view->resize(400, 300);
  
  qint64 foldId = view->textFolding().newFoldingRange (KTextEditor::Range(1, 0, 3, 1));
  view->textFolding().foldRange(foldId);
  QVERIFY(view->textFolding().isLineVisible(0));
  QVERIFY(view->textFolding().isLineVisible(1));
  QVERIFY(!view->textFolding().isLineVisible(2));
  QVERIFY(!view->textFolding().isLineVisible(3));
  QVERIFY(view->textFolding().isLineVisible(4));

  view->setSelection(Range(Cursor(0,4), Cursor(4, 6)));
  view->setCursorPosition(Cursor(4, 6));

  QTest::qWait(100);
  doc.typeChars(view, "x");
  QTest::qWait(100);

  QString line = doc.line(0);
  QCOMPARE(line, QString("oooox----------"));
}
开发者ID:dividedmind,项目名称:kate,代码行数:42,代码来源:katefoldingtest.cpp

示例6: shouldAbortCompletion

bool KateWordCompletionModel::shouldAbortCompletion(KTextEditor::View* view, const KTextEditor::Range &range, const QString &currentCompletion) {

    if (m_automatic) {
      KateView *v = qobject_cast<KateView*> (view);
      if (currentCompletion.length()<v->config()->wordCompletionMinimalWordLength()) return true;
    }
    return CodeCompletionModelControllerInterface4::shouldAbortCompletion(view,range,currentCompletion);
}
开发者ID:ktuan89,项目名称:kate-4.8.0,代码行数:8,代码来源:katewordcompletion.cpp

示例7: doc

void BugTest::tryCrash()
{
  KateDocument doc(false, false, false);
  QString url = KDESRCDIR + QString("folding-crash.py");
  doc.openUrl(url);
  doc.discardDataRecovery();
  doc.setHighlightingMode("Python");
  doc.buffer().ensureHighlighted (doc.lines());

  // view must be visible...
  KateView* view = static_cast<KateView*>(doc.createView(0));
  view->show();
  view->resize(400, 300);

  // fold all
  doc.foldingTree()->collapseToplevelNodes();
  QTest::qWait(1000);

  view->down();
  view->down();
  view->end();
  view->cursorRight();
  view->down();
  view->down();
  view->end();
  QTest::qWait(1000);

  qDebug() << "!!! The next line usually crashes in the code folding code";
  view->backspace();

  doc.buffer().ensureHighlighted (doc.lines());
  QTest::qWait(1000);
}
开发者ID:DevMaggio,项目名称:qodeedit,代码行数:33,代码来源:bug294750.cpp

示例8: KateCmdShellCompletion

KCompletion *KateCommands::CoreCommands::completionObject( const QString &cmd, Kate::View *view )
{
  if ( cmd == "set-highlight" )
  {
    KateView *v = (KateView*)view;
    QStringList l;
    for ( uint i = 0; i < v->doc()->hlModeCount(); i++ )
      l << v->doc()->hlModeName( i );

    KateCmdShellCompletion *co = new KateCmdShellCompletion();
    co->setItems( l );
    co->setIgnoreCase( true );
    return co;
  }
  return 0L;
}
开发者ID:,项目名称:,代码行数:16,代码来源:

示例9: re_ifind

void SearchCommand::processText( Kate::View *view, const TQString &cmd )
{
  static TQRegExp re_ifind("ifind(?::([bcrs]*))?\\s(.*)");
  if ( re_ifind.search( cmd ) > -1 )
  {
    TQString flags = re_ifind.cap( 1 );
    TQString pattern = re_ifind.cap( 2 );


    // if there is no setup, or the text length is 0, set up the properties
    if ( ! m_ifindFlags || pattern.isEmpty() )
      ifindInit( flags );
    // if there is no fromCursor, add it if this is not the first character
    else if ( ! ( m_ifindFlags & KFindDialog::FromCursor ) && ! pattern.isEmpty() )
      m_ifindFlags |= KFindDialog::FromCursor;

    // search..
    if ( ! pattern.isEmpty() )
    {
      KateView *v = (KateView*)view;

      // If it *looks like* we are continuing, place the cursor
      // at the beginning of the selection, so that the search continues.
      // ### check more carefully, like is  the cursor currently at the end
      // of the selection.
      if ( pattern.startsWith( v->selection() ) &&
           v->selection().length() + 1 == pattern.length() )
        v->setCursorPositionInternal( v->selStartLine(), v->selStartCol() );

      v->find( pattern, m_ifindFlags, false );
    }
  }
}
开发者ID:Fat-Zer,项目名称:tdelibs,代码行数:33,代码来源:katesearch.cpp

示例10: QFETCH

void KateFoldingTest::testFolding()
{
  QFETCH(QString, text);
  QFETCH(QString, fileExt);
  QFETCH(QString, firstActionName);
  QFETCH(QString, secondActionName);

  QFETCH(unsigned int, initValue);
  QFETCH(unsigned int, firstResult);
  QFETCH(unsigned int, secondResult);

  KTemporaryFile file;
  file.setSuffix("." + fileExt);
  file.open();
  QTextStream stream(&file);

  stream << text;
  stream << flush;
  file.close();

  KateDocument doc(false, false, false);
  QVERIFY(doc.openUrl(KUrl(file.fileName())));

  KateView* view = new KateView(&doc, 0);

  QAction* firstAction = view->action(qPrintable(firstActionName));
  QVERIFY(firstAction);

  QAction* secondAction = view->action(qPrintable(secondActionName));
  QVERIFY(secondAction);

  // is set to allow kate's hl to be called
  view->config()->setDynWordWrap(true);

  QCOMPARE(doc.visibleLines(), initValue);

  firstAction->trigger();
  QCOMPARE(doc.visibleLines(), firstResult);

  secondAction->trigger();
  QCOMPARE(doc.visibleLines(), secondResult);
}
开发者ID:UIKit0,项目名称:kate,代码行数:42,代码来源:katefolding_test.cpp

示例11: shouldStartCompletion

bool KateWordCompletionModel::shouldStartCompletion(KTextEditor::View* view, const QString &insertedText, bool userInsertion, const KTextEditor::Cursor &position)
{
    if (!userInsertion) return false;
    if(insertedText.isEmpty())
        return false;

    KateView *v = qobject_cast<KateView*> (view);

    QString text = view->document()->line(position.line()).left(position.column());
    uint check=v->config()->wordCompletionMinimalWordLength();
    if (check<=0) return true;
    int start=text.length();
    int end=text.length()-check;
    if (end<0) return false;
    for (int i=start-1;i>=end;i--) {
      QChar c=text.at(i);
      if (! (c.isLetter() || (c.isNumber()) || c=='_') ) return false;
    }
    return true;
}
开发者ID:ktuan89,项目名称:kate-4.8.0,代码行数:20,代码来源:katewordcompletion.cpp

示例12: completionInvoked

void KateWordCompletionModel::completionInvoked(KTextEditor::View* view, const KTextEditor::Range& range, InvocationType it)
{
  /**
   * auto invoke...
   */
  m_automatic=false;
  if (it==AutomaticInvocation) {
      m_automatic=true;
      KateView *v = qobject_cast<KateView*> (view);

      if (range.columnWidth() >= v->config()->wordCompletionMinimalWordLength())
        saveMatches( view, range );
      else
        m_matches.clear();

      // done here...
      return;
  }

  // normal case ;)
  saveMatches( view, range );
}
开发者ID:ktuan89,项目名称:kate-4.8.0,代码行数:22,代码来源:katewordcompletion.cpp

示例13: testCursorPosition

void UndoManagerTest::testCursorPosition()
{
  TestDocument doc;
  KateView *view = static_cast<KateView*>(doc.createView(0));

  doc.setText("aaaa bbbb cccc\n"
              "dddd  ffff");
  view->setCursorPosition(KTextEditor::Cursor(1, 5));

  doc.typeChars(view, "eeee");

  // cursor position: "dddd eeee| ffff"
  QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(1, 9));

  // undo once to remove "eeee", cursor position: "dddd | ffff"
  doc.undo();
  QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(1, 5));

  // redo once to insert "eeee" again. cursor position: "dddd eeee| ffff"
  doc.redo();
  QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(1, 9));

  delete view;
}
开发者ID:DevMaggio,项目名称:qodeedit,代码行数:24,代码来源:undomanager_test.cpp

示例14: doc

// tests:
// - RangeFeedback::mouseEnteredRange
// - RangeFeedback::mouseExitedRange
void MovingRangeTest::testFeedbackMouse()
{
  KateDocument doc (false, false, false);
  // the range created below will span the 'x' characters
  QString text("..xxxx\n"
               "xxxx..");
  doc.setText(text);

  KateView* view = static_cast<KateView*>(doc.createView(0));
  view->setCursorPosition(Cursor(1, 6));
  view->show();
  view->resize(200, 100);

  // create range feedback
  RangeFeedback rf;
  QVERIFY(!rf.mouseEnteredRangeCalled());
  QVERIFY(!rf.mouseExitedRangeCalled());

  // allow empty
  MovingRange* range = doc.newMovingRange(Range(Cursor(0, 2), Cursor(1, 4)),
                                          KTextEditor::MovingRange::ExpandLeft |
                                          KTextEditor::MovingRange::ExpandRight,
                                          KTextEditor::MovingRange::InvalidateIfEmpty);
  range->setFeedback(&rf);
  rf.verifyReset();

  // left (nothing)
  QTest::mouseMove(view, view->cursorToCoordinate(Cursor(0, 0)) + QPoint(0, 5));
  QTest::qWait(200); // process mouse events. do not move mouse manually
  QVERIFY(!rf.mouseEnteredRangeCalled());
  QVERIFY(!rf.mouseExitedRangeCalled());

  // middle (enter)
  rf.reset();
  QTest::mouseMove(view, view->cursorToCoordinate(Cursor(0, 3)) + QPoint(0, 5));
  QTest::qWait(200); // process mouse events. do not move mouse manually
  QVERIFY(rf.mouseEnteredRangeCalled());
  QVERIFY(!rf.mouseExitedRangeCalled());

  // right (exit)
  rf.reset();
  QTest::mouseMove(view, view->cursorToCoordinate(Cursor(1, 6)) + QPoint(10, 5));
  QTest::qWait(200); // process mouse events. do not move mouse manually
  QVERIFY(!rf.mouseEnteredRangeCalled());
  QVERIFY(rf.mouseExitedRangeCalled());
}
开发者ID:azat-archive,项目名称:kate,代码行数:49,代码来源:movingrange_test.cpp

示例15: KCC_ERR

bool KateCommands::CoreCommands::exec(Kate::View *view,
                            const QString &_cmd,
                            QString &errorMsg)
{
#define KCC_ERR(s) { errorMsg=s; return false; }
  // cast it hardcore, we know that it is really a kateview :)
  KateView *v = (KateView*) view;

  if ( ! v )
    KCC_ERR( i18n("Could not access view") );

  //create a list of args
  QStringList args( QStringList::split( QRegExp("\\s+"), _cmd ) );
  QString cmd ( args.first() );
  args.remove( args.first() );

  // ALL commands that takes no arguments.
  if ( cmd == "indent" )
  {
    v->indent();
    return true;
  }
  else if ( cmd == "run-myself" )
  {
#ifndef Q_WS_WIN //todo
    return KateFactory::self()->jscript()->execute(v, v->doc()->text(), errorMsg);
#else
    return 0;
#endif
  }
  else if ( cmd == "unindent" )
  {
    v->unIndent();
    return true;
  }
  else if ( cmd == "cleanindent" )
  {
    v->cleanIndent();
    return true;
  }
  else if ( cmd == "comment" )
  {
    v->comment();
    return true;
  }
  else if ( cmd == "uncomment" )
  {
    v->uncomment();
    return true;
  }
  else if ( cmd == "kill-line" )
  {
    v->killLine();
    return true;
  }
  else if ( cmd == "set-indent-mode" )
  {
    bool ok(false);
    int val ( args.first().toInt( &ok ) );
    if ( ok )
    {
      if ( val < 0 )
        KCC_ERR( i18n("Mode must be at least 0.") );
      v->doc()->config()->setIndentationMode( val );
    }
    else
      v->doc()->config()->setIndentationMode( KateAutoIndent::modeNumber( args.first() ) );
    return true;
  }
  else if ( cmd == "set-highlight" )
  {
    QString val = _cmd.section( ' ', 1 ).lower();
    for ( uint i=0; i < v->doc()->hlModeCount(); i++ )
    {
      if ( v->doc()->hlModeName( i ).lower() == val )
      {
        v->doc()->setHlMode( i );
        return true;
      }
    }
    KCC_ERR( i18n("No such highlight '%1'").arg( args.first() ) );
  }

  // ALL commands that takes exactly one integer argument.
  else if ( cmd == "set-tab-width" ||
            cmd == "set-indent-width" ||
            cmd == "set-word-wrap-column" ||
            cmd == "goto" )
  {
    // find a integer value > 0
    if ( ! args.count() )
      KCC_ERR( i18n("Missing argument. Usage: %1 <value>").arg( cmd ) );
    bool ok;
    int val ( args.first().toInt( &ok ) );
    if ( !ok )
      KCC_ERR( i18n("Failed to convert argument '%1' to integer.")
                .arg( args.first() ) );

    if ( cmd == "set-tab-width" )
    {
//.........这里部分代码省略.........
开发者ID:,项目名称:,代码行数:101,代码来源:


注:本文中的KateView类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。