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" |