tests/auto/qtextcursor/tst_qtextcursor.cpp
changeset 30 5dc02b23752f
parent 18 2f34d5167611
child 33 3e2da88830cd
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
   148     void task244408_wordUnderCursor();
   148     void task244408_wordUnderCursor();
   149 
   149 
   150     void adjustCursorsOnInsert();
   150     void adjustCursorsOnInsert();
   151 
   151 
   152     void cursorPositionWithBlockUndoAndRedo();
   152     void cursorPositionWithBlockUndoAndRedo();
       
   153     void cursorPositionWithBlockUndoAndRedo2();
   153 
   154 
   154 private:
   155 private:
   155     int blockCount();
   156     int blockCount();
   156 
   157 
   157     QTextDocument *doc;
   158     QTextDocument *doc;
  1776     doc->redo(&cursor);
  1777     doc->redo(&cursor);
  1777     QVERIFY(doc->toPlainText() == "*AAAA*BBBB*CCCC*DDDD");
  1778     QVERIFY(doc->toPlainText() == "*AAAA*BBBB*CCCC*DDDD");
  1778     QCOMPARE(cursor.position(), cursorPositionAfter);
  1779     QCOMPARE(cursor.position(), cursorPositionAfter);
  1779 }
  1780 }
  1780 
  1781 
       
  1782 void tst_QTextCursor::cursorPositionWithBlockUndoAndRedo2()
       
  1783 {
       
  1784     cursor.insertText("AAAABBBB");
       
  1785     int cursorPositionBefore = cursor.position();
       
  1786     cursor.setPosition(0, QTextCursor::KeepAnchor);
       
  1787     cursor.beginEditBlock();
       
  1788     cursor.removeSelectedText();
       
  1789     cursor.insertText("AAAABBBBCCCCDDDD");
       
  1790     cursor.endEditBlock();
       
  1791     doc->undo(&cursor);
       
  1792     QVERIFY(doc->toPlainText() == "AAAABBBB");
       
  1793     QCOMPARE(cursor.position(), cursorPositionBefore);
       
  1794 
       
  1795     cursor.insertText("CCCC");
       
  1796     QVERIFY(doc->toPlainText() == "AAAABBBBCCCC");
       
  1797 
       
  1798     cursorPositionBefore = cursor.position();
       
  1799     cursor.setPosition(0, QTextCursor::KeepAnchor);
       
  1800     cursor.beginEditBlock();
       
  1801     cursor.removeSelectedText();
       
  1802     cursor.insertText("AAAABBBBCCCCDDDD");
       
  1803     cursor.endEditBlock();
       
  1804 
       
  1805     /* this undo now implicitely reinserts two segments, first "CCCCC", then
       
  1806        "AAAABBBB". The test ensures that the two are combined in order to
       
  1807        reconstruct the correct cursor position */
       
  1808     doc->undo(&cursor);
       
  1809 
       
  1810 
       
  1811     QVERIFY(doc->toPlainText() == "AAAABBBBCCCC");
       
  1812     QCOMPARE(cursor.position(), cursorPositionBefore);
       
  1813 }
       
  1814 
  1781 QTEST_MAIN(tst_QTextCursor)
  1815 QTEST_MAIN(tst_QTextCursor)
  1782 #include "tst_qtextcursor.moc"
  1816 #include "tst_qtextcursor.moc"