diff options
author | Nicolas Arnaud-Cormos <[email protected]> | 2011-02-07 11:34:02 +0100 |
---|---|---|
committer | con <[email protected]> | 2011-02-07 14:26:10 +0100 |
commit | acf607f0093475eb9e073e0520151e0a2ac0ef65 (patch) | |
tree | f25bb5925c7c5a0648072dc98b611b153164bbca /src/plugins/macros/macromanager.cpp | |
parent | 23e024de640bd3d1983e655e2733e03ef8c0fa60 (diff) |
The macros plugin use a directory in userResourcePath.
It is not possible to manage different directory for the macro plugin, it uses the user resource path per default.
This change cleans a lot of code, specially we don't need any specific settings for the macro plugin, and the option page is more simple.
Merge-request: 240
Reviewed-by: con <[email protected]>
Diffstat (limited to 'src/plugins/macros/macromanager.cpp')
-rw-r--r-- | src/plugins/macros/macromanager.cpp | 104 |
1 files changed, 20 insertions, 84 deletions
diff --git a/src/plugins/macros/macromanager.cpp b/src/plugins/macros/macromanager.cpp index 600544ed704..f7d7e8f0254 100644 --- a/src/plugins/macros/macromanager.cpp +++ b/src/plugins/macros/macromanager.cpp @@ -36,7 +36,6 @@ #include "macrosconstants.h" #include "macroevent.h" #include "macro.h" -#include "macrosettings.h" #include "imacrohandler.h" #include "savedialog.h" #include "actionmacrohandler.h" @@ -63,7 +62,6 @@ #include <QtCore/QList> #include <QtGui/QShortcut> -#include <QtGui/QKeySequence> #include <QtGui/QMainWindow> #include <QtGui/QAction> #include <QtGui/QFileDialog> @@ -107,7 +105,6 @@ public: MacroManagerPrivate(MacroManager *qq); MacroManager *q; - MacroSettings settings; QMap<QString, Macro *> macros; Macro *currentMacro; bool isRecording; @@ -120,10 +117,8 @@ public: TextEditorMacroHandler *textEditorHandler; FindMacroHandler *findHandler; - void init(); - void appendDirectory(const QString &directory); - void removeDirectory(const QString &directory); - void addMacro(Macro *macro, QKeySequence ks=QKeySequence()); + void initialize(); + void addMacro(Macro *macro); void removeMacro(const QString &name); void changeMacroDescription(Macro *macro, const QString &description); @@ -137,23 +132,20 @@ MacroManager::MacroManagerPrivate::MacroManagerPrivate(MacroManager *qq): isRecording(false), mapper(new QSignalMapper(qq)) { - settings.fromSettings(Core::ICore::instance()->settings()); - connect(mapper, SIGNAL(mapped(QString)), q, SLOT(executeMacro(QString))); - // Load/unload macros - foreach (const QString &dir, settings.directories) - appendDirectory(dir); + // Load existing macros + initialize(); actionHandler = new ActionMacroHandler; textEditorHandler = new TextEditorMacroHandler; findHandler = new FindMacroHandler; } -void MacroManager::MacroManagerPrivate::appendDirectory(const QString &directory) +void MacroManager::MacroManagerPrivate::initialize() { macros.clear(); - QDir dir(directory); + QDir dir(q->macrosDirectory()); QStringList filter; filter << QString("*.")+Constants::M_EXTENSION; QStringList files = dir.entryList(filter, QDir::Files); @@ -162,32 +154,11 @@ void MacroManager::MacroManagerPrivate::appendDirectory(const QString &directory QString fileName = dir.absolutePath()+"/"+name; Macro *macro = new Macro; macro->loadHeader(fileName); - - // Create shortcut - QKeySequence ks; - if (settings.shortcuts.contains(macro->displayName())) - ks.fromString(settings.shortcuts.value(macro->displayName()).toString()); - - addMacro(macro, ks); - } -} - -void MacroManager::MacroManagerPrivate::removeDirectory(const QString &directory) -{ - QMapIterator<QString, Macro *> it(macros); - QDir dir(directory); - QStringList removeList; - while (it.hasNext()) { - it.next(); - QFileInfo fileInfo(it.value()->fileName()); - if (fileInfo.absoluteDir() == dir.absolutePath()) - removeList.append(it.key()); + addMacro(macro); } - foreach (const QString &name, removeList) - removeMacro(name); } -void MacroManager::MacroManagerPrivate::addMacro(Macro *macro, QKeySequence ks) +void MacroManager::MacroManagerPrivate::addMacro(Macro *macro) { // Add sortcut Core::Context context(TextEditor::Constants::C_TEXTEDITOR); @@ -196,9 +167,7 @@ void MacroManager::MacroManagerPrivate::addMacro(Macro *macro, QKeySequence ks) QShortcut *shortcut = new QShortcut(core->mainWindow()); shortcut->setWhatsThis(macro->description()); const QString macroId = QLatin1String(Constants::PREFIX_MACRO) + macro->displayName(); - Core::Command *command = am->registerShortcut(shortcut, macroId, context); - if (!ks.isEmpty()) - command->setDefaultKeySequence(ks); + am->registerShortcut(shortcut, macroId, context); connect(shortcut, SIGNAL(activated()), mapper, SLOT(map())); mapper->setMapping(shortcut, macro->displayName()); @@ -274,22 +243,8 @@ void MacroManager::MacroManagerPrivate::showSaveDialog() if (dialog.name().isEmpty()) return; - // Check if there's a default directory - // If not, ask a directory to the user - QString directory = settings.defaultDirectory; - QDir dir(directory); - if (directory.isEmpty() || !dir.exists()) { - directory = QFileDialog::getExistingDirectory( - mainWindow, - tr("Choose a default macro directory"), - QDir::homePath()); - if (directory.isNull()) - return; - settings.directories.append(directory); - settings.defaultDirectory= directory; - q->saveSettings(); - } - QString fileName = directory + '/' + dialog.name() + // Save in the resource path + QString fileName = q->macrosDirectory() + '/' + dialog.name() + '.' + Constants::M_EXTENSION; currentMacro->setDescription(dialog.description()); currentMacro->save(fileName); @@ -324,11 +279,6 @@ MacroManager::~MacroManager() delete d; } -const MacroSettings &MacroManager::settings() const -{ - return d->settings; -} - void MacroManager::startMacro() { d->isRecording = true; @@ -397,30 +347,12 @@ bool MacroManager::executeMacro(const QString &name) return true; } -void MacroManager::appendDirectory(const QString &directory) -{ - d->appendDirectory(directory); - d->settings.directories.append(directory); -} - -void MacroManager::removeDirectory(const QString &directory) -{ - d->removeDirectory(directory); - d->settings.directories.removeAll(directory); -} - -void MacroManager::setDefaultDirectory(const QString &directory) -{ - d->settings.defaultDirectory = directory; -} - void MacroManager::deleteMacro(const QString &name) { Macro *macro = d->macros.value(name); if (macro) { QString fileName = macro->fileName(); d->removeMacro(name); - d->settings.shortcuts.remove(name); QFile::remove(fileName); } } @@ -430,11 +362,6 @@ const QMap<QString,Macro*> &MacroManager::macros() const return d->macros; } -void MacroManager::saveSettings() -{ - d->settings.toSettings(Core::ICore::instance()->settings()); -} - void MacroManager::registerMacroHandler(IMacroHandler *handler) { d->handlers.prepend(handler); @@ -461,3 +388,12 @@ void Macros::MacroManager::saveLastMacro() if (d->currentMacro->events().count()) d->showSaveDialog(); } + +QString Macros::MacroManager::macrosDirectory() const +{ + const QString &path = + Core::ICore::instance()->userResourcePath() + QLatin1String("/macros"); + if (QFile::exists(path) || QDir().mkpath(path)) + return path; + return QString(); +} |