aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/macros
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2019-03-20 18:51:16 +0100
committerhjk <hjk@qt.io>2019-03-25 06:57:10 +0000
commitb34d5b0b8e3830d7146eb92b3841ac9091cc6e3f (patch)
treef2f4d346e04937bfc068aa1400791d7b85aeacf0 /src/plugins/macros
parent0de515658812d62e4ef436fdb55e4e4c0f2a4100 (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.cpp4
-rw-r--r--src/plugins/macros/macrolocatorfilter.h2
-rw-r--r--src/plugins/macros/macromanager.cpp33
-rw-r--r--src/plugins/macros/macromanager.h15
-rw-r--r--src/plugins/macros/macrooptionspage.cpp3
-rw-r--r--src/plugins/macros/macrooptionspage.h2
-rw-r--r--src/plugins/macros/macrosplugin.cpp32
-rw-r--r--src/plugins/macros/macrosplugin.h10
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 &macroEvent, 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 *> &macros();
@@ -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