diff options
author | hjk <hjk@qt.io> | 2019-03-20 18:51:16 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2019-03-25 06:57:10 +0000 |
commit | b34d5b0b8e3830d7146eb92b3841ac9091cc6e3f (patch) | |
tree | f2f4d346e04937bfc068aa1400791d7b85aeacf0 /src/plugins/macros | |
parent | 0de515658812d62e4ef436fdb55e4e4c0f2a4100 (diff) |
Macros: Move a bit closer to standard plugin setup pattern
Change-Id: I68b04f93022a8638da558d1240c0c8b74d9a25e2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/macros')
-rw-r--r-- | src/plugins/macros/macrolocatorfilter.cpp | 4 | ||||
-rw-r--r-- | src/plugins/macros/macrolocatorfilter.h | 2 | ||||
-rw-r--r-- | src/plugins/macros/macromanager.cpp | 33 | ||||
-rw-r--r-- | src/plugins/macros/macromanager.h | 15 | ||||
-rw-r--r-- | src/plugins/macros/macrooptionspage.cpp | 3 | ||||
-rw-r--r-- | src/plugins/macros/macrooptionspage.h | 2 | ||||
-rw-r--r-- | src/plugins/macros/macrosplugin.cpp | 32 | ||||
-rw-r--r-- | src/plugins/macros/macrosplugin.h | 10 |
8 files changed, 51 insertions, 50 deletions
diff --git a/src/plugins/macros/macrolocatorfilter.cpp b/src/plugins/macros/macrolocatorfilter.cpp index 0296e4fe082..9c45c461fd4 100644 --- a/src/plugins/macros/macrolocatorfilter.cpp +++ b/src/plugins/macros/macrolocatorfilter.cpp @@ -37,8 +37,8 @@ using namespace Macros; using namespace Macros::Internal; -MacroLocatorFilter::MacroLocatorFilter(QObject *parent) - : Core::ILocatorFilter(parent), m_icon(QPixmap(":/macros/images/macro.png")) +MacroLocatorFilter::MacroLocatorFilter() + : m_icon(QPixmap(":/macros/images/macro.png")) { setId("Macros"); setDisplayName(tr("Text Editing Macros")); diff --git a/src/plugins/macros/macrolocatorfilter.h b/src/plugins/macros/macrolocatorfilter.h index 78bf5ae938e..784c2172589 100644 --- a/src/plugins/macros/macrolocatorfilter.h +++ b/src/plugins/macros/macrolocatorfilter.h @@ -37,7 +37,7 @@ class MacroLocatorFilter : public Core::ILocatorFilter Q_OBJECT public: - explicit MacroLocatorFilter(QObject *parent); + MacroLocatorFilter(); ~MacroLocatorFilter() override; QList<Core::LocatorFilterEntry> matchesFor(QFutureInterface<Core::LocatorFilterEntry> &future, diff --git a/src/plugins/macros/macromanager.cpp b/src/plugins/macros/macromanager.cpp index acea7177221..7767e1d161d 100644 --- a/src/plugins/macros/macromanager.cpp +++ b/src/plugins/macros/macromanager.cpp @@ -57,7 +57,8 @@ #include <QFileDialog> #include <QMessageBox> -using namespace Macros::Internal; +namespace Macros { +namespace Internal { /*! \namespace Macros @@ -88,7 +89,7 @@ using namespace Macros::Internal; the action id passed to the ActionManager. */ -class MacroManager::MacroManagerPrivate +class MacroManagerPrivate { public: MacroManagerPrivate(MacroManager *qq); @@ -114,7 +115,7 @@ public: void showSaveDialog(); }; -MacroManager::MacroManagerPrivate::MacroManagerPrivate(MacroManager *qq): +MacroManagerPrivate::MacroManagerPrivate(MacroManager *qq): q(qq) { // Load existing macros @@ -125,7 +126,7 @@ MacroManager::MacroManagerPrivate::MacroManagerPrivate(MacroManager *qq): findHandler = new FindMacroHandler; } -void MacroManager::MacroManagerPrivate::initialize() +void MacroManagerPrivate::initialize() { macros.clear(); QDir dir(q->macrosDirectory()); @@ -148,7 +149,7 @@ static Core::Id makeId(const QString &name) return Core::Id(Macros::Constants::PREFIX_MACRO).withSuffix(name); } -void MacroManager::MacroManagerPrivate::addMacro(Macro *macro) +void MacroManagerPrivate::addMacro(Macro *macro) { // Add sortcut Core::Context context(TextEditor::Constants::C_TEXTEDITOR); @@ -156,7 +157,7 @@ void MacroManager::MacroManagerPrivate::addMacro(Macro *macro) Core::Command *command = Core::ActionManager::registerAction( action, makeId(macro->displayName()), context); command->setAttribute(Core::Command::CA_UpdateText); - connect(action, &QAction::triggered, q, [this, macro]() { + QObject::connect(action, &QAction::triggered, q, [this, macro]() { q->executeMacro(macro->displayName()); }); @@ -165,7 +166,7 @@ void MacroManager::MacroManagerPrivate::addMacro(Macro *macro) actions[macro->displayName()] = action; } -void MacroManager::MacroManagerPrivate::removeMacro(const QString &name) +void MacroManagerPrivate::removeMacro(const QString &name) { if (!macros.contains(name)) return; @@ -181,7 +182,7 @@ void MacroManager::MacroManagerPrivate::removeMacro(const QString &name) delete macro; } -void MacroManager::MacroManagerPrivate::changeMacroDescription(Macro *macro, const QString &description) +void MacroManagerPrivate::changeMacroDescription(Macro *macro, const QString &description) { if (!macro->load()) return; @@ -193,7 +194,7 @@ void MacroManager::MacroManagerPrivate::changeMacroDescription(Macro *macro, con action->setText(description); } -bool MacroManager::MacroManagerPrivate::executeMacro(Macro *macro) +bool MacroManagerPrivate::executeMacro(Macro *macro) { bool error = !macro->load(); foreach (const MacroEvent ¯oEvent, macro->events()) { @@ -210,8 +211,8 @@ bool MacroManager::MacroManagerPrivate::executeMacro(Macro *macro) if (error) { QMessageBox::warning(Core::ICore::mainWindow(), - tr("Playing Macro"), - tr("An error occurred while replaying the macro, execution stopped.")); + MacroManager::tr("Playing Macro"), + MacroManager::tr("An error occurred while replaying the macro, execution stopped.")); } // Set the focus back to the editor @@ -222,7 +223,7 @@ bool MacroManager::MacroManagerPrivate::executeMacro(Macro *macro) return !error; } -void MacroManager::MacroManagerPrivate::showSaveDialog() +void MacroManagerPrivate::showSaveDialog() { QWidget *mainWindow = Core::ICore::mainWindow(); SaveDialog dialog(mainWindow); @@ -241,10 +242,9 @@ void MacroManager::MacroManagerPrivate::showSaveDialog() // ---------- MacroManager ------------ -MacroManager *MacroManager::m_instance = nullptr; +MacroManager *m_instance = nullptr; -MacroManager::MacroManager(QObject *parent) : - QObject(parent), +MacroManager::MacroManager() : d(new MacroManagerPrivate(this)) { m_instance = this; @@ -393,3 +393,6 @@ QString MacroManager::macrosDirectory() return path; return QString(); } + +} // Internal +} // Macros diff --git a/src/plugins/macros/macromanager.h b/src/plugins/macros/macromanager.h index d2b876300ff..e0e197a3616 100644 --- a/src/plugins/macros/macromanager.h +++ b/src/plugins/macros/macromanager.h @@ -34,12 +34,15 @@ namespace Internal { class IMacroHandler; class Macro; class MacroOptionsWidget; -class MacrosPlugin; class MacroManager : public QObject { Q_OBJECT + public: + MacroManager(); + ~MacroManager() override; + static MacroManager *instance(); static const QMap<QString, Macro *> ¯os(); @@ -61,15 +64,7 @@ protected: void changeMacro(const QString &name, const QString &description); private: - explicit MacroManager(QObject *parent = nullptr); - ~MacroManager() override; - - static MacroManager *m_instance; - - class MacroManagerPrivate; - MacroManagerPrivate* d; - - friend class Internal::MacrosPlugin; + class MacroManagerPrivate *d; }; } // namespace Internal diff --git a/src/plugins/macros/macrooptionspage.cpp b/src/plugins/macros/macrooptionspage.cpp index 1cc8ec9875f..25ce616fea9 100644 --- a/src/plugins/macros/macrooptionspage.cpp +++ b/src/plugins/macros/macrooptionspage.cpp @@ -39,8 +39,7 @@ using namespace Macros; using namespace Macros::Internal; -MacroOptionsPage::MacroOptionsPage(QObject *parent) - : Core::IOptionsPage(parent) +MacroOptionsPage::MacroOptionsPage() { setId(Constants::M_OPTIONS_PAGE); setDisplayName(QCoreApplication::translate("Macros", Constants::M_OPTIONS_TR_PAGE)); diff --git a/src/plugins/macros/macrooptionspage.h b/src/plugins/macros/macrooptionspage.h index 846e700df13..eaa3c93d176 100644 --- a/src/plugins/macros/macrooptionspage.h +++ b/src/plugins/macros/macrooptionspage.h @@ -39,7 +39,7 @@ class MacroOptionsPage : public Core::IOptionsPage Q_OBJECT public: - MacroOptionsPage(QObject *parent = nullptr); + MacroOptionsPage(); // IOptionsPage implementation QWidget *widget() override; diff --git a/src/plugins/macros/macrosplugin.cpp b/src/plugins/macros/macrosplugin.cpp index c56520d9cf3..4dbc46905e6 100644 --- a/src/plugins/macros/macrosplugin.cpp +++ b/src/plugins/macros/macrosplugin.cpp @@ -40,17 +40,25 @@ #include <coreplugin/id.h> #include <coreplugin/icontext.h> -#include <QtPlugin> #include <QSettings> #include <QAction> #include <QKeySequence> #include <QMenu> -using namespace Macros::Internal; +namespace Macros { +namespace Internal { + +class MacrosPluginPrivate +{ +public: + MacroManager macroManager; + MacroOptionsPage optionsPage; + MacroLocatorFilter locatorFilter; +}; MacrosPlugin::~MacrosPlugin() { - delete m_macroManager; + delete d; } bool MacrosPlugin::initialize(const QStringList &arguments, QString *errorMessage) @@ -58,11 +66,9 @@ bool MacrosPlugin::initialize(const QStringList &arguments, QString *errorMessag Q_UNUSED(arguments); Q_UNUSED(errorMessage); - new MacroOptionsPage(this); - new MacroLocatorFilter(this); + d = new MacrosPluginPrivate; Core::Context textContext(TextEditor::Constants::C_TEXTEDITOR); - m_macroManager = new MacroManager(this); // Menus Core::ActionContainer *mtools = Core::ActionManager::actionContainer(Core::Constants::M_TOOLS); @@ -76,30 +82,30 @@ bool MacrosPlugin::initialize(const QStringList &arguments, QString *errorMessag Core::Command *command = Core::ActionManager::registerAction(startMacro, Constants::START_MACRO, textContext); command->setDefaultKeySequence(QKeySequence(Core::useMacShortcuts ? tr("Ctrl+[") : tr("Alt+["))); mmacrotools->addAction(command); - connect(startMacro, &QAction::triggered, m_macroManager, &MacroManager::startMacro); + connect(startMacro, &QAction::triggered, &d->macroManager, &MacroManager::startMacro); QAction *endMacro = new QAction(tr("Stop Recording Macro"), this); endMacro->setEnabled(false); command = Core::ActionManager::registerAction(endMacro, Constants::END_MACRO); command->setDefaultKeySequence(QKeySequence(Core::useMacShortcuts ? tr("Ctrl+]") : tr("Alt+]"))); mmacrotools->addAction(command); - connect(endMacro, &QAction::triggered, m_macroManager, &MacroManager::endMacro); + connect(endMacro, &QAction::triggered, &d->macroManager, &MacroManager::endMacro); QAction *executeLastMacro = new QAction(tr("Play Last Macro"), this); command = Core::ActionManager::registerAction(executeLastMacro, Constants::EXECUTE_LAST_MACRO, textContext); command->setDefaultKeySequence(QKeySequence(Core::useMacShortcuts ? tr("Meta+R") : tr("Alt+R"))); mmacrotools->addAction(command); - connect(executeLastMacro, &QAction::triggered, m_macroManager, &MacroManager::executeLastMacro); + connect(executeLastMacro, &QAction::triggered, &d->macroManager, &MacroManager::executeLastMacro); QAction *saveLastMacro = new QAction(tr("Save Last Macro"), this); saveLastMacro->setEnabled(false); command = Core::ActionManager::registerAction(saveLastMacro, Constants::SAVE_LAST_MACRO, textContext); mmacrotools->addAction(command); - connect(saveLastMacro, &QAction::triggered, m_macroManager, &MacroManager::saveLastMacro); + connect(saveLastMacro, &QAction::triggered, &d->macroManager, &MacroManager::saveLastMacro); return true; } -void MacrosPlugin::extensionsInitialized() -{ -} + +} // Internal +} // Macros diff --git a/src/plugins/macros/macrosplugin.h b/src/plugins/macros/macrosplugin.h index 02a2dd33da7..f4339b9e4f6 100644 --- a/src/plugins/macros/macrosplugin.h +++ b/src/plugins/macros/macrosplugin.h @@ -30,21 +30,19 @@ namespace Macros { namespace Internal { -class MacroManager; - class MacrosPlugin : public ExtensionSystem::IPlugin { Q_OBJECT Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Macros.json") public: - ~MacrosPlugin() override; + ~MacrosPlugin() final; - bool initialize(const QStringList &arguments, QString *errorMessage) override; - void extensionsInitialized() override; + bool initialize(const QStringList &arguments, QString *errorMessage) final; + void extensionsInitialized() final {} private: - MacroManager *m_macroManager = nullptr; + class MacrosPluginPrivate *d = nullptr; }; } // namespace Internal |