diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp index 97e1cfffea07c2be91a03249a0159dbc7a64a816..f0fd5d001a2e16db17c650f4cbc82580192c5ad3 100644 --- a/src/plugins/fakevim/fakevimplugin.cpp +++ b/src/plugins/fakevim/fakevimplugin.cpp @@ -59,6 +59,7 @@ #include <QtCore/QPoint> #include <QtCore/QSettings> +#include <QtGui/QMessageBox> #include <QtGui/QPlainTextEdit> #include <QtGui/QTextBlock> #include <QtGui/QTextCursor> @@ -149,6 +150,8 @@ void FakeVimPlugin::installHandler() if (!textEditor) return; + connect(m_handler, SIGNAL(extraInformationChanged(QString)), + this, SLOT(showExtraInformation(QString))); connect(m_handler, SIGNAL(commandBufferChanged(QString)), this, SLOT(showCommandBuffer(QString))); connect(m_handler, SIGNAL(quitRequested(QWidget *)), @@ -171,6 +174,11 @@ void FakeVimPlugin::showCommandBuffer(const QString &contents) tr("Quit FakeVim"), m_handler, SLOT(quit())); } +void FakeVimPlugin::showExtraInformation(const QString &text) +{ + QMessageBox::information(0, tr("FakeVim Information"), text); +} + //#include "fakevimplugin.moc" diff --git a/src/plugins/fakevim/fakevimplugin.h b/src/plugins/fakevim/fakevimplugin.h index 9025affcec33c6a36a7f8a54c8f44e9002a89d59..afbbe89d4a8d9c546b16393d78e7a11201636a4a 100644 --- a/src/plugins/fakevim/fakevimplugin.h +++ b/src/plugins/fakevim/fakevimplugin.h @@ -82,6 +82,7 @@ private slots: void installHandler(); void removeHandler(QWidget *widget); void showCommandBuffer(const QString &contents); + void showExtraInformation(const QString &msg); private: FakeVimHandler *m_handler; diff --git a/src/plugins/fakevim/handler.cpp b/src/plugins/fakevim/handler.cpp index b53a97e6c37cd33e68b07a63fe18184888febb32..fc120dbf2ae6d3b57cb4d55e913fc7cd985c94c8 100644 --- a/src/plugins/fakevim/handler.cpp +++ b/src/plugins/fakevim/handler.cpp @@ -1004,6 +1004,7 @@ void FakeVimHandler::Private::handleExCommand(const QString &cmd0) static QRegExp reWrite("^w!?( (.*))?$"); static QRegExp reDelete("^d( (.*))?$"); + static QRegExp reSet("^set?( (.*))?$"); if (cmd.isEmpty()) { m_tc.setPosition(positionForLine(beginLine)); @@ -1093,6 +1094,14 @@ void FakeVimHandler::Private::handleExCommand(const QString &cmd0) redo(); enterCommandMode(); updateMiniBuffer(); + } else if (reSet.indexIn(cmd) != -1) { // :set + QString arg = reSet.cap(2); + if (arg.isEmpty()) { + QString info; + foreach (const QString &key, m_config.keys()) + info += key + ": " + m_config.value(key) + "\n"; + emit q->extraInformationChanged(info); + } } else { showRedMessage("E492: Not an editor command: " + cmd0); } diff --git a/src/plugins/fakevim/handler.h b/src/plugins/fakevim/handler.h index fccb9f0f84f3abc229f4e567258213f8129f4f16..bd8b4834035dc3fbad918e65ae390d10bdd9d8bd 100644 --- a/src/plugins/fakevim/handler.h +++ b/src/plugins/fakevim/handler.h @@ -66,6 +66,7 @@ public slots: signals: void commandBufferChanged(const QString &msg); void statusDataChanged(const QString &msg); + void extraInformationChanged(const QString &msg); void quitRequested(QWidget *); private: