From 4133107a0d4f42949f8f89a461d47581af62e8e4 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Tue, 2 Jun 2009 15:38:08 +0200 Subject: [PATCH] fakevim: remove old undo hack as QPlainTextEdit's own undo works well now. --- src/plugins/fakevim/fakevimhandler.cpp | 21 --------------------- 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 ceda3253347..c233a74ee23 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 66002c9380c..ad8c1f60381 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); -- GitLab