diff options
-rw-r--r-- | src/plugins/fakevim/fakevimplugin.cpp | 109 | ||||
-rw-r--r-- | src/plugins/fakevim/fakevimplugin.h | 43 |
2 files changed, 93 insertions, 59 deletions
diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp index 07557d55c2..56864c886e 100644 --- a/src/plugins/fakevim/fakevimplugin.cpp +++ b/src/plugins/fakevim/fakevimplugin.cpp @@ -57,13 +57,14 @@ #include <utils/qtcassert.h> #include <QtCore/QDebug> -#include <QtCore/qplugin.h> +#include <QtCore/QtPlugin> #include <QtCore/QObject> #include <QtCore/QPoint> #include <QtCore/QSettings> #include <QtGui/QMessageBox> #include <QtGui/QPlainTextEdit> +#include <QtGui/QTextEdit> #include <QtGui/QTextBlock> #include <QtGui/QTextCursor> @@ -87,26 +88,65 @@ const char * const INSTALL_KEY = "Alt+V,Alt+V"; /////////////////////////////////////////////////////////////////////// // -// FakeVimPlugin +// FakeVimPluginPrivate // /////////////////////////////////////////////////////////////////////// -FakeVimPlugin::FakeVimPlugin() +namespace FakeVim { +namespace Internal { + +class FakeVimPluginPrivate : public QObject { - m_core = 0; + Q_OBJECT + +public: + FakeVimPluginPrivate(FakeVimPlugin *); + ~FakeVimPluginPrivate(); + friend class FakeVimPlugin; + + bool initialize(const QStringList &arguments, QString *error_message); + void shutdown(); + +private slots: + void installHandler(); + void installHandler(QWidget *widget); + void removeHandler(QWidget *widget); + void showCommandBuffer(const QString &contents); + void showExtraInformation(const QString &msg); + void editorOpened(Core::IEditor *); + void editorAboutToClose(Core::IEditor *); + void changeSelection(QWidget *widget, + const QList<QTextEdit::ExtraSelection> &selections); + +private: + FakeVimPlugin *q; + FakeVimHandler *m_handler; + QAction *m_installHandlerAction; + Core::ICore *m_core; +}; + +} // namespace Internal +} // namespace FakeVim + +FakeVimPluginPrivate::FakeVimPluginPrivate(FakeVimPlugin *plugin) +{ + q = plugin; m_handler = 0; + m_installHandlerAction = 0; + m_core = 0; } -FakeVimPlugin::~FakeVimPlugin() -{} +FakeVimPluginPrivate::~FakeVimPluginPrivate() +{ +} -void FakeVimPlugin::shutdown() +void FakeVimPluginPrivate::shutdown() { delete m_handler; m_handler = 0; } -bool FakeVimPlugin::initialize(const QStringList &arguments, QString *error_message) +bool FakeVimPluginPrivate::initialize(const QStringList &arguments, QString *error_message) { Q_UNUSED(arguments); Q_UNUSED(error_message); @@ -147,17 +187,13 @@ bool FakeVimPlugin::initialize(const QStringList &arguments, QString *error_mess return true; } -void FakeVimPlugin::extensionsInitialized() -{ -} - -void FakeVimPlugin::installHandler() +void FakeVimPluginPrivate::installHandler() { if (Core::IEditor *editor = m_core->editorManager()->currentEditor()) installHandler(editor->widget()); } -void FakeVimPlugin::installHandler(QWidget *widget) +void FakeVimPluginPrivate::installHandler(QWidget *widget) { connect(m_handler, SIGNAL(extraInformationChanged(QString)), this, SLOT(showExtraInformation(QString))); @@ -189,7 +225,7 @@ void FakeVimPlugin::installHandler(QWidget *widget) } } -void FakeVimPlugin::removeHandler(QWidget *widget) +void FakeVimPluginPrivate::removeHandler(QWidget *widget) { Q_UNUSED(widget); m_handler->removeWidget(widget); @@ -197,38 +233,69 @@ void FakeVimPlugin::removeHandler(QWidget *widget) QLatin1String(Constants::MINI_BUFFER)); } -void FakeVimPlugin::editorOpened(Core::IEditor *editor) +void FakeVimPluginPrivate::editorOpened(Core::IEditor *editor) { Q_UNUSED(editor); //qDebug() << "OPENING: " << editor << editor->widget(); //installHandler(editor->widget()); } -void FakeVimPlugin::editorAboutToClose(Core::IEditor *editor) +void FakeVimPluginPrivate::editorAboutToClose(Core::IEditor *editor) { //qDebug() << "CLOSING: " << editor << editor->widget(); removeHandler(editor->widget()); } -void FakeVimPlugin::showCommandBuffer(const QString &contents) +void FakeVimPluginPrivate::showCommandBuffer(const QString &contents) { Core::EditorManager::instance()->showEditorInfoBar( QLatin1String(Constants::MINI_BUFFER), contents, tr("Quit FakeVim"), m_handler, SLOT(quit())); } -void FakeVimPlugin::showExtraInformation(const QString &text) +void FakeVimPluginPrivate::showExtraInformation(const QString &text) { QMessageBox::information(0, tr("FakeVim Information"), text); } -void FakeVimPlugin::changeSelection(QWidget *widget, +void FakeVimPluginPrivate::changeSelection(QWidget *widget, const QList<QTextEdit::ExtraSelection> &selection) { if (BaseTextEditor *bt = qobject_cast<BaseTextEditor *>(widget)) bt->setExtraSelections(BaseTextEditor::FakeVimSelection, selection); } -//#include "fakevimplugin.moc" + +/////////////////////////////////////////////////////////////////////// +// +// FakeVimPlugin +// +/////////////////////////////////////////////////////////////////////// + +FakeVimPlugin::FakeVimPlugin() + : d(new FakeVimPluginPrivate(this)) +{} + +FakeVimPlugin::~FakeVimPlugin() +{ + delete d; +} + + +bool FakeVimPlugin::initialize(const QStringList &arguments, QString *error_message) +{ + return d->initialize(arguments, error_message); +} + +void FakeVimPlugin::shutdown() +{ + d->shutdown(); +} + +void FakeVimPlugin::extensionsInitialized() +{ +} + +#include "fakevimplugin.moc" Q_EXPORT_PLUGIN(FakeVimPlugin) diff --git a/src/plugins/fakevim/fakevimplugin.h b/src/plugins/fakevim/fakevimplugin.h index bbd934281f..75f323afcd 100644 --- a/src/plugins/fakevim/fakevimplugin.h +++ b/src/plugins/fakevim/fakevimplugin.h @@ -36,35 +36,13 @@ #include <extensionsystem/iplugin.h> -#include <QtCore/QObject> -#include <QtCore/QList> -#include <QtGui/QTextEdit> - -QT_BEGIN_NAMESPACE -class QAction; -QT_END_NAMESPACE - - -namespace Core { - -class ICore; -class IEditor; - -} // namespace Core - - -namespace TextEditor { - -class ITextEditor; - -} // namespace TextEditor - - namespace FakeVim { namespace Internal { class FakeVimHandler; +class FakeVimPluginPrivate; + class FakeVimPlugin : public ExtensionSystem::IPlugin { Q_OBJECT @@ -74,25 +52,14 @@ public: ~FakeVimPlugin(); private: + // implementation of ExtensionSystem::IPlugin bool initialize(const QStringList &arguments, QString *error_message); void shutdown(); void extensionsInitialized(); -private slots: - void installHandler(); - void installHandler(QWidget *widget); - void removeHandler(QWidget *widget); - void showCommandBuffer(const QString &contents); - void showExtraInformation(const QString &msg); - void editorOpened(Core::IEditor *); - void editorAboutToClose(Core::IEditor *); - void changeSelection(QWidget *widget, - const QList<QTextEdit::ExtraSelection> &selections); - private: - FakeVimHandler *m_handler; - QAction *m_installHandlerAction; - Core::ICore *m_core; + friend class FakeVimPluginPrivate; + FakeVimPluginPrivate *d; }; } // namespace Internal |