diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index ceda32533477f4fcc08e7365517651cb4fd9b5c7..c233a74ee23b66977b0dd009aad6116273c598ad 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 66002c9380cc4bf93737bea7d0f8ec178399b962..ad8c1f603819f6e9f34bdb4a2be1bd327c4e76eb 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);