From 530967ea2238ce7fb67b6da124dd16738689c7e3 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Wed, 25 Mar 2009 13:31:30 +0100 Subject: [PATCH] fakevim: trigger autocompletion on '.' and '>' --- src/plugins/fakevim/fakevimhandler.cpp | 3 +++ src/plugins/fakevim/fakevimhandler.h | 1 + src/plugins/fakevim/fakevimplugin.cpp | 12 ++++++++++++ 3 files changed, 16 insertions(+) diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 985d4db096d..b42c4d011e1 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -1512,6 +1512,9 @@ EventResult FakeVimHandler::Private::handleInsertMode(int key, int, if (leftText.simplified().isEmpty()) indentRegion(text.at(0)); } + + if (text.at(0) == '.' || text.at(0) == '>') + emit q->completionRequested(); } else { return EventUnhandled; } diff --git a/src/plugins/fakevim/fakevimhandler.h b/src/plugins/fakevim/fakevimhandler.h index d7d978c9d8a..7b5b183cf34 100644 --- a/src/plugins/fakevim/fakevimhandler.h +++ b/src/plugins/fakevim/fakevimhandler.h @@ -77,6 +77,7 @@ signals: const QString &fileName, const QString &contents); void moveToMatchingParenthesis(bool *moved, bool *forward, QTextCursor *cursor); void indentRegion(int *amount, int beginLine, int endLine, QChar typedChar); + void completionRequested(); private: bool eventFilter(QObject *ob, QEvent *ev); diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp index ee632a1acba..8ece7de8724 100644 --- a/src/plugins/fakevim/fakevimplugin.cpp +++ b/src/plugins/fakevim/fakevimplugin.cpp @@ -116,6 +116,7 @@ private slots: void installHandlerOnCurrentEditor(); void installHandler(Core::IEditor *editor); void removeHandler(); + void triggerCompletions(); void showCommandBuffer(const QString &contents); void showExtraInformation(const QString &msg); @@ -208,6 +209,8 @@ void FakeVimPluginPrivate::installHandler(Core::IEditor *editor) this, SLOT(moveToMatchingParenthesis(bool*,bool*,QTextCursor*))); connect(handler, SIGNAL(indentRegion(int*,int,int,QChar)), this, SLOT(indentRegion(int*,int,int,QChar))); + connect(handler, SIGNAL(completionRequested()), + this, SLOT(triggerCompletions())); handler->setupWidget(); handler->setExtraData(editor); @@ -235,6 +238,15 @@ void FakeVimPluginPrivate::installHandlerOnCurrentEditor() installHandler(EditorManager::instance()->currentEditor()); } +void FakeVimPluginPrivate::triggerCompletions() +{ + FakeVimHandler *handler = qobject_cast<FakeVimHandler *>(sender()); + if (!handler) + return; + if (BaseTextEditor *bt = qobject_cast<BaseTextEditor *>(handler->widget())) + bt->triggerCompletions(); +} + void FakeVimPluginPrivate::writeFile(bool *handled, const QString &fileName, const QString &contents) { -- GitLab