Merge branch 'master' of git@scm.dev.nokia.troll.no:creator/mainline

This commit is contained in:
hjk
2008-12-19 14:03:09 +01:00

View File

@@ -81,11 +81,11 @@ public:
static int control(int key) { return key + 256; } static int control(int key) { return key + 256; }
void init(); void init();
void handleKey(int key); void handleKey(int key, const QString &text);
void handleInsertMode(int key); void handleInsertMode(int key, const QString &text);
void handleCommandMode(int key); void handleCommandMode(int key, const QString &text);
void handleRegisterMode(int key); void handleRegisterMode(int key, const QString &text);
void handleExMode(int key); void handleExMode(int key, const QString &text);
void finishMovement(); void finishMovement();
void updateCommandBuffer(); void updateCommandBuffer();
void search(const QString &needle, bool backwards); void search(const QString &needle, bool backwards);
@@ -153,7 +153,7 @@ bool FakeVimHandler::Private::eventFilter(QObject *ob, QEvent *ev)
key += 32; key += 32;
if ((keyEvent->modifiers() & Qt::ControlModifier) != 0) if ((keyEvent->modifiers() & Qt::ControlModifier) != 0)
key += 256; key += 256;
handleKey(key); handleKey(key, keyEvent->text());
// We fake vi-style end-of-line behaviour // We fake vi-style end-of-line behaviour
m_fakeEnd = atEol() && m_mode == CommandMode; m_fakeEnd = atEol() && m_mode == CommandMode;
@@ -176,14 +176,14 @@ bool FakeVimHandler::Private::eventFilter(QObject *ob, QEvent *ev)
return true; return true;
} }
void FakeVimHandler::Private::handleKey(int key) void FakeVimHandler::Private::handleKey(int key, const QString &text)
{ {
if (m_mode == InsertMode) if (m_mode == InsertMode)
handleInsertMode(key); handleInsertMode(key, text);
else if (m_mode == CommandMode) else if (m_mode == CommandMode)
handleCommandMode(key); handleCommandMode(key, text);
else if (m_mode == ExMode) else if (m_mode == ExMode)
handleExMode(key); handleExMode(key, text);
} }
void FakeVimHandler::Private::finishMovement() void FakeVimHandler::Private::finishMovement()
@@ -218,8 +218,10 @@ void FakeVimHandler::Private::showMessage(const QString &msg)
emit q->commandBufferChanged(msg); emit q->commandBufferChanged(msg);
} }
void FakeVimHandler::Private::handleCommandMode(int key) void FakeVimHandler::Private::handleCommandMode(int key, const QString &text)
{ {
Q_UNUSED(text)
//qDebug() << "-> MODE: " << m_mode << " KEY: " << key; //qDebug() << "-> MODE: " << m_mode << " KEY: " << key;
if (m_submode == RegisterSubMode) { if (m_submode == RegisterSubMode) {
m_register = key; m_register = key;
@@ -329,12 +331,14 @@ void FakeVimHandler::Private::handleCommandMode(int key)
finishMovement(); finishMovement();
} else if (key == Key_Backspace) { } else if (key == Key_Backspace) {
m_tc.deletePreviousChar(); m_tc.deletePreviousChar();
} else if (key == Key_Delete) {
m_tc.deleteChar();
} else { } else {
qDebug() << "Ignored" << key; qDebug() << "Ignored" << key;
} }
} }
void FakeVimHandler::Private::handleInsertMode(int key) void FakeVimHandler::Private::handleInsertMode(int key, const QString &text)
{ {
if (key == Key_Escape) { if (key == Key_Escape) {
m_mode = CommandMode; m_mode = CommandMode;
@@ -351,15 +355,17 @@ void FakeVimHandler::Private::handleInsertMode(int key)
m_tc.insertBlock(); m_tc.insertBlock();
} else if (key == Key_Backspace) { } else if (key == Key_Backspace) {
m_tc.deletePreviousChar(); m_tc.deletePreviousChar();
} else if (key == Key_Tab) { } else if (key == Key_Delete) {
m_tc.insertText(QChar(9)); m_tc.deleteChar();
} else { } else {
m_tc.insertText(QChar(key)); m_tc.insertText(text);
} }
} }
void FakeVimHandler::Private::handleExMode(int key) void FakeVimHandler::Private::handleExMode(int key, const QString &text)
{ {
Q_UNUSED(text)
if (key == Key_Escape) { if (key == Key_Escape) {
m_commandBuffer.clear(); m_commandBuffer.clear();
m_commandCode = 0; m_commandCode = 0;