Macros: Clean up singleton APIs

Task-number: QTCREATORBUG-9763

Change-Id: I76c4d60279f738272b0cf5fda651ce266f798c2c
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Tobias Hunger
2013-08-02 12:33:17 +02:00
parent 7b9ebdcb3b
commit 1ab065add3
5 changed files with 19 additions and 15 deletions

View File

@@ -57,7 +57,7 @@ QList<Locator::FilterEntry> MacroLocatorFilter::matchesFor(QFutureInterface<Loca
Q_UNUSED(future) Q_UNUSED(future)
QList<Locator::FilterEntry> result; QList<Locator::FilterEntry> result;
const QMap<QString, Macro*> &macros = MacroManager::instance()->macros(); const QMap<QString, Macro*> &macros = MacroManager::macros();
QMapIterator<QString, Macro*> it(macros); QMapIterator<QString, Macro*> it(macros);
while (it.hasNext()) { while (it.hasNext()) {

View File

@@ -253,10 +253,10 @@ MacroManager::MacroManager(QObject *parent) :
QObject(parent), QObject(parent),
d(new MacroManagerPrivate(this)) d(new MacroManagerPrivate(this))
{ {
m_instance = this;
registerMacroHandler(d->actionHandler); registerMacroHandler(d->actionHandler);
registerMacroHandler(d->findHandler); registerMacroHandler(d->findHandler);
registerMacroHandler(d->textEditorHandler); registerMacroHandler(d->textEditorHandler);
m_instance = this;
} }
MacroManager::~MacroManager() MacroManager::~MacroManager()
@@ -360,14 +360,14 @@ void MacroManager::deleteMacro(const QString &name)
} }
} }
const QMap<QString,Macro*> &MacroManager::macros() const const QMap<QString,Macro*> &MacroManager::macros()
{ {
return d->macros; return m_instance->d->macros;
} }
void MacroManager::registerMacroHandler(IMacroHandler *handler) void MacroManager::registerMacroHandler(IMacroHandler *handler)
{ {
d->handlers.prepend(handler); m_instance->d->handlers.prepend(handler);
} }
MacroManager *MacroManager::instance() MacroManager *MacroManager::instance()
@@ -392,7 +392,7 @@ void Macros::MacroManager::saveLastMacro()
d->showSaveDialog(); d->showSaveDialog();
} }
QString Macros::MacroManager::macrosDirectory() const QString Macros::MacroManager::macrosDirectory()
{ {
const QString &path = const QString &path =
Core::ICore::userResourcePath() + QLatin1String("/macros"); Core::ICore::userResourcePath() + QLatin1String("/macros");

View File

@@ -46,22 +46,20 @@ class IMacroHandler;
namespace Internal { namespace Internal {
class MacroOptionsWidget; class MacroOptionsWidget;
class MacrosPlugin;
} }
class MACROS_EXPORT MacroManager : public QObject class MACROS_EXPORT MacroManager : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit MacroManager(QObject *parent = 0);
~MacroManager();
static MacroManager *instance(); static MacroManager *instance();
const QMap<QString, Macro *> &macros() const; static const QMap<QString, Macro *> &macros();
void registerMacroHandler(IMacroHandler *handler); static void registerMacroHandler(IMacroHandler *handler);
QString macrosDirectory() const; static QString macrosDirectory();
public slots: public slots:
void startMacro(); void startMacro();
@@ -77,10 +75,15 @@ protected:
void changeMacro(const QString &name, const QString &description); void changeMacro(const QString &name, const QString &description);
private: private:
explicit MacroManager(QObject *parent = 0);
~MacroManager();
static MacroManager *m_instance; static MacroManager *m_instance;
class MacroManagerPrivate; class MacroManagerPrivate;
MacroManagerPrivate* d; MacroManagerPrivate* d;
friend class Internal::MacrosPlugin;
}; };
} // namespace Macros } // namespace Macros

View File

@@ -97,9 +97,9 @@ void MacroOptionsWidget::initialize()
void MacroOptionsWidget::createTable() void MacroOptionsWidget::createTable()
{ {
QDir dir(MacroManager::instance()->macrosDirectory()); QDir dir(MacroManager::macrosDirectory());
const Core::Id base = Core::Id(Constants::PREFIX_MACRO); const Core::Id base = Core::Id(Constants::PREFIX_MACRO);
QMapIterator<QString, Macro *> it(MacroManager::instance()->macros()); QMapIterator<QString, Macro *> it(MacroManager::macros());
while (it.hasNext()) { while (it.hasNext()) {
it.next(); it.next();
QFileInfo fileInfo(it.value()->fileName()); QFileInfo fileInfo(it.value()->fileName());

View File

@@ -59,6 +59,7 @@ MacrosPlugin::MacrosPlugin()
MacrosPlugin::~MacrosPlugin() MacrosPlugin::~MacrosPlugin()
{ {
delete m_macroManager;
} }
bool MacrosPlugin::initialize(const QStringList &arguments, QString *errorMessage) bool MacrosPlugin::initialize(const QStringList &arguments, QString *errorMessage)