summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <qtc-committer@nokia.com>2009-06-02 15:38:08 +0200
committerhjk <qtc-committer@nokia.com>2009-06-03 12:48:47 +0200
commit4133107a0d4f42949f8f89a461d47581af62e8e4 (patch)
tree272ac495cb7089fb371a2589645b627384320adc
parent76f57c8678823bd1a39871733ddfcb18c3d3a1fe (diff)
downloadqt-creator-4133107a0d4f42949f8f89a461d47581af62e8e4.tar.gz
fakevim: remove old undo hack as QPlainTextEdit's own undo works well now.
-rw-r--r--src/plugins/fakevim/fakevimhandler.cpp21
-rw-r--r--tests/auto/fakevim/main.cpp8
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);