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)
QList<Locator::FilterEntry> result;
const QMap<QString, Macro*> &macros = MacroManager::instance()->macros();
const QMap<QString, Macro*> &macros = MacroManager::macros();
QMapIterator<QString, Macro*> it(macros);
while (it.hasNext()) {

View File

@@ -253,10 +253,10 @@ MacroManager::MacroManager(QObject *parent) :
QObject(parent),
d(new MacroManagerPrivate(this))
{
m_instance = this;
registerMacroHandler(d->actionHandler);
registerMacroHandler(d->findHandler);
registerMacroHandler(d->textEditorHandler);
m_instance = this;
}
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)
{
d->handlers.prepend(handler);
m_instance->d->handlers.prepend(handler);
}
MacroManager *MacroManager::instance()
@@ -392,7 +392,7 @@ void Macros::MacroManager::saveLastMacro()
d->showSaveDialog();
}
QString Macros::MacroManager::macrosDirectory() const
QString Macros::MacroManager::macrosDirectory()
{
const QString &path =
Core::ICore::userResourcePath() + QLatin1String("/macros");

View File

@@ -45,23 +45,21 @@ class Macro;
class IMacroHandler;
namespace Internal {
class MacroOptionsWidget;
class MacroOptionsWidget;
class MacrosPlugin;
}
class MACROS_EXPORT MacroManager : public QObject
{
Q_OBJECT
public:
explicit MacroManager(QObject *parent = 0);
~MacroManager();
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:
void startMacro();
@@ -77,10 +75,15 @@ protected:
void changeMacro(const QString &name, const QString &description);
private:
explicit MacroManager(QObject *parent = 0);
~MacroManager();
static MacroManager *m_instance;
class MacroManagerPrivate;
MacroManagerPrivate* d;
friend class Internal::MacrosPlugin;
};
} // namespace Macros

View File

@@ -97,9 +97,9 @@ void MacroOptionsWidget::initialize()
void MacroOptionsWidget::createTable()
{
QDir dir(MacroManager::instance()->macrosDirectory());
QDir dir(MacroManager::macrosDirectory());
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()) {
it.next();
QFileInfo fileInfo(it.value()->fileName());

View File

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