diff options
author | hjk <qtc-committer@nokia.com> | 2009-06-02 15:38:08 +0200 |
---|---|---|
committer | hjk <qtc-committer@nokia.com> | 2009-06-03 12:48:47 +0200 |
commit | 4133107a0d4f42949f8f89a461d47581af62e8e4 (patch) | |
tree | 272ac495cb7089fb371a2589645b627384320adc | |
parent | 76f57c8678823bd1a39871733ddfcb18c3d3a1fe (diff) | |
download | qt-creator-4133107a0d4f42949f8f89a461d47581af62e8e4.tar.gz |
fakevim: remove old undo hack as QPlainTextEdit's own undo works well now.
-rw-r--r-- | src/plugins/fakevim/fakevimhandler.cpp | 21 | ||||
-rw-r--r-- | tests/auto/fakevim/main.cpp | 8 |
2 files changed, 7 insertions, 22 deletions
diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index ceda325334..c233a74ee2 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -212,8 +212,6 @@ enum EventResult EventPassedToCore }; -class UndoBreaker; - class FakeVimHandler::Private { public: @@ -229,7 +227,6 @@ public: void restoreWidget(); friend class FakeVimHandler; - friend class UndoBreaker; static int shift(int key) { return key + 32; } static int control(int key) { return key + 256; } @@ -354,7 +351,6 @@ public: void undo(); void redo(); QMap<int, int> m_undoCursorPosition; // revision -> position - bool m_needMoreUndo; // extra data for '.' void replay(const QString &text, int count); @@ -2412,10 +2408,7 @@ void FakeVimHandler::Private::undo() { int current = m_tc.document()->revision(); m_tc.endEditBlock(); - m_needMoreUndo = false; EDITOR(undo()); - if (m_needMoreUndo) - EDITOR(undo()); m_tc.beginEditBlock(); int rev = m_tc.document()->revision(); if (current == rev) @@ -2430,10 +2423,7 @@ void FakeVimHandler::Private::redo() { int current = m_tc.document()->revision(); m_tc.endEditBlock(); - m_needMoreUndo = false; EDITOR(redo()); - if (m_needMoreUndo) - EDITOR(redo()); m_tc.beginEditBlock(); int rev = m_tc.document()->revision(); if (rev == current) @@ -2487,20 +2477,9 @@ void FakeVimHandler::Private::recordJump() UNDO_DEBUG("jumps: " << m_jumpListUndo); } -class UndoBreaker : public QAbstractUndoItem -{ -public: - UndoBreaker(FakeVimHandler::Private *doc) : m_doc(doc) {} - void undo() { m_doc->m_needMoreUndo = true; } - void redo() { m_doc->m_needMoreUndo = true; } -private: - FakeVimHandler::Private *m_doc; -}; - void FakeVimHandler::Private::recordNewUndo() { m_tc.endEditBlock(); - m_tc.document()->appendUndoItem(new UndoBreaker(this)); m_tc.beginEditBlock(); } diff --git a/tests/auto/fakevim/main.cpp b/tests/auto/fakevim/main.cpp index 66002c9380..ad8c1f6038 100644 --- a/tests/auto/fakevim/main.cpp +++ b/tests/auto/fakevim/main.cpp @@ -328,12 +328,18 @@ void tst_FakeVim::command_i() // combine insertions + check("i1" + escape, "@1" + lines); + check("i2" + escape, "@21" + lines); + check("i3" + escape, "@321" + lines); + check("u", "@21" + lines); + check("u", "@1" + lines); + check("u", "@" + lines); check("ia" + escape, "@a" + lines); check("ibx" + escape, "b@xa" + lines); check("icyy" + escape, "bcy@yxa" + lines); -return; // FIXME check("u", "b@xa" + lines); check("u", "@a" + lines); // undo broken +return; // FIXME checkEx("redo", "b@xa" + lines); check("u", "@a" + lines); check("u", "@" + lines); |