From 23e024de640bd3d1983e655e2733e03ef8c0fa60 Mon Sep 17 00:00:00 2001 From: Nicolas Arnaud-Cormos Date: Mon, 7 Feb 2011 11:34:01 +0100 Subject: Add a save macro menu item, and remove the 'show save dialog' option in macro plugin Merge-request: 240 Reviewed-by: con --- src/plugins/macros/macromanager.cpp | 31 +++++++++++++------------------ src/plugins/macros/macromanager.h | 2 +- src/plugins/macros/macrooptionswidget.cpp | 4 ---- src/plugins/macros/macrooptionswidget.ui | 21 +++++++-------------- src/plugins/macros/macrosconstants.h | 1 + src/plugins/macros/macrosettings.cpp | 9 ++------- src/plugins/macros/macrosettings.h | 1 - src/plugins/macros/macrosplugin.cpp | 6 ++++++ src/plugins/macros/savedialog.cpp | 5 ----- src/plugins/macros/savedialog.h | 1 - src/plugins/macros/savedialog.ui | 10 +--------- 11 files changed, 31 insertions(+), 60 deletions(-) (limited to 'src') diff --git a/src/plugins/macros/macromanager.cpp b/src/plugins/macros/macromanager.cpp index 2e68787904c..600544ed704 100644 --- a/src/plugins/macros/macromanager.cpp +++ b/src/plugins/macros/macromanager.cpp @@ -271,12 +271,6 @@ void MacroManager::MacroManagerPrivate::showSaveDialog() QMainWindow *mainWindow = Core::ICore::instance()->mainWindow(); SaveDialog dialog(mainWindow); if (dialog.exec()) { - bool changed = false; - if (settings.showSaveDialog == dialog.hideSaveDialog()) { - settings.showSaveDialog = !dialog.hideSaveDialog(); - changed = true; - } - if (dialog.name().isEmpty()) return; @@ -293,16 +287,13 @@ void MacroManager::MacroManagerPrivate::showSaveDialog() return; settings.directories.append(directory); settings.defaultDirectory= directory; - changed = true; + q->saveSettings(); } QString fileName = directory + '/' + dialog.name() + '.' + Constants::M_EXTENSION; currentMacro->setDescription(dialog.description()); currentMacro->save(fileName); addMacro(currentMacro); - - if (changed) - q->saveSettings(); } } @@ -350,6 +341,7 @@ void MacroManager::startMacro() am->command(Constants::START_MACRO)->action()->setEnabled(false); am->command(Constants::END_MACRO)->action()->setEnabled(true); am->command(Constants::EXECUTE_LAST_MACRO)->action()->setEnabled(false); + am->command(Constants::SAVE_LAST_MACRO)->action()->setEnabled(false); foreach (IMacroHandler *handler, d->handlers) handler->startRecording(d->currentMacro); @@ -371,13 +363,11 @@ void MacroManager::endMacro() am->command(Constants::START_MACRO)->action()->setEnabled(true); am->command(Constants::END_MACRO)->action()->setEnabled(false); am->command(Constants::EXECUTE_LAST_MACRO)->action()->setEnabled(true); + am->command(Constants::SAVE_LAST_MACRO)->action()->setEnabled(true); foreach (IMacroHandler *handler, d->handlers) handler->endRecordingMacro(d->currentMacro); d->isRecording = false; - - if (d->currentMacro->events().count() && d->settings.showSaveDialog) - d->showSaveDialog(); } void MacroManager::executeLastMacro() @@ -400,6 +390,10 @@ bool MacroManager::executeMacro(const QString &name) if (d->currentMacro && d->currentMacro->displayName().isEmpty()) delete d->currentMacro; d->currentMacro = macro; + + Core::ActionManager *am = Core::ICore::instance()->actionManager(); + am->command(Constants::SAVE_LAST_MACRO)->action()->setEnabled(true); + return true; } @@ -420,11 +414,6 @@ void MacroManager::setDefaultDirectory(const QString &directory) d->settings.defaultDirectory = directory; } -void MacroManager::showSaveDialog(bool value) -{ - d->settings.showSaveDialog = value; -} - void MacroManager::deleteMacro(const QString &name) { Macro *macro = d->macros.value(name); @@ -466,3 +455,9 @@ void MacroManager::changeMacro(const QString &name, const QString &description) if (macro->description() != description) d->changeMacroDescription(macro, description); } + +void Macros::MacroManager::saveLastMacro() +{ + if (d->currentMacro->events().count()) + d->showSaveDialog(); +} diff --git a/src/plugins/macros/macromanager.h b/src/plugins/macros/macromanager.h index 0e7883e0a61..e1713218182 100644 --- a/src/plugins/macros/macromanager.h +++ b/src/plugins/macros/macromanager.h @@ -71,6 +71,7 @@ public slots: void startMacro(); void endMacro(); void executeLastMacro(); + void saveLastMacro(); bool executeMacro(const QString &name); protected: @@ -81,7 +82,6 @@ protected: void appendDirectory(const QString &directory); void removeDirectory(const QString &directory); void setDefaultDirectory(const QString &directory); - void showSaveDialog(bool value); void saveSettings(); private: diff --git a/src/plugins/macros/macrooptionswidget.cpp b/src/plugins/macros/macrooptionswidget.cpp index e2c2db854a5..7d1ca18d473 100644 --- a/src/plugins/macros/macrooptionswidget.cpp +++ b/src/plugins/macros/macrooptionswidget.cpp @@ -104,8 +104,6 @@ void MacroOptionsWidget::setSettings(const MacroSettings &s) m_directories.clear(); ui->treeWidget->clear(); - ui->showSaveDialog->setChecked(s.showSaveDialog); - // Create the treeview foreach (const QString &dir, s.directories) appendDirectory(dir, s.defaultDirectory==dir); @@ -231,8 +229,6 @@ void MacroOptionsWidget::apply() foreach (const QString &dir, dirToRemove) MacroManager::instance()->removeDirectory(dir); - MacroManager::instance()->showSaveDialog(ui->showSaveDialog->checkState()==Qt::Checked); - MacroManager::instance()->saveSettings(); // Reinitialize the page diff --git a/src/plugins/macros/macrooptionswidget.ui b/src/plugins/macros/macrooptionswidget.ui index 57372c037b1..b4c749955f6 100644 --- a/src/plugins/macros/macrooptionswidget.ui +++ b/src/plugins/macros/macrooptionswidget.ui @@ -20,7 +20,7 @@ Preferences - + @@ -33,7 +33,7 @@ - + @@ -43,14 +43,14 @@ - + Add - + Qt::ElideLeft @@ -87,14 +87,14 @@ - + Default Directory - + Qt::Horizontal @@ -107,20 +107,13 @@ - + Remove - - - - Show the save dialog at the end of the macro - - - diff --git a/src/plugins/macros/macrosconstants.h b/src/plugins/macros/macrosconstants.h index 73b1fb3cf09..12b2b00572b 100644 --- a/src/plugins/macros/macrosconstants.h +++ b/src/plugins/macros/macrosconstants.h @@ -42,6 +42,7 @@ const char * const M_TOOLS_MACRO = "Macros.Tools.Menu"; const char * const START_MACRO = "Macros.StartMacro"; const char * const END_MACRO = "Macros.EndMacro"; const char * const EXECUTE_LAST_MACRO = "Macros.ExecuteLastMacro"; +const char * const SAVE_LAST_MACRO = "Macros.SaveLastMacro"; const char * const PREFIX_MACRO = "Macros."; const char * const M_OPTIONS_PAGE = "Macros"; diff --git a/src/plugins/macros/macrosettings.cpp b/src/plugins/macros/macrosettings.cpp index 1e75d5e7f64..c4191e995ba 100644 --- a/src/plugins/macros/macrosettings.cpp +++ b/src/plugins/macros/macrosettings.cpp @@ -39,13 +39,11 @@ using namespace Macros::Internal; static const char GROUP[] = "Macro"; static const char DEFAULT_DIRECTORY[] = "DefaultDirectory"; -static const char SHOW_SAVE_DIALOG[] = "ShowSaveDialog"; static const char DIRECTORIES[] = "Directories"; static const char SHORTCUTS[] = "Shortcuts"; -MacroSettings::MacroSettings(): - showSaveDialog(false) +MacroSettings::MacroSettings() { } @@ -53,7 +51,6 @@ void MacroSettings::toSettings(QSettings *s) const { s->beginGroup(QLatin1String(GROUP)); s->setValue(QLatin1String(DEFAULT_DIRECTORY), defaultDirectory); - s->setValue(QLatin1String(SHOW_SAVE_DIALOG), showSaveDialog); s->setValue(QLatin1String(DIRECTORIES), directories); s->setValue(QLatin1String(SHORTCUTS), shortcuts); s->endGroup(); @@ -63,7 +60,6 @@ void MacroSettings::fromSettings(QSettings *s) { s->beginGroup(QLatin1String(GROUP)); defaultDirectory = s->value(QLatin1String(DEFAULT_DIRECTORY), QString("")).toString(); - showSaveDialog = s->value(QLatin1String(SHOW_SAVE_DIALOG), false).toBool(); directories = s->value(QLatin1String(DIRECTORIES)).toStringList(); shortcuts = s->value(QLatin1String(SHORTCUTS)).toMap(); s->endGroup(); @@ -73,6 +69,5 @@ bool MacroSettings::equals(const MacroSettings &ms) const { return defaultDirectory == ms.defaultDirectory && shortcuts == ms.shortcuts && - directories == ms.directories && - showSaveDialog == ms.showSaveDialog; + directories == ms.directories; } diff --git a/src/plugins/macros/macrosettings.h b/src/plugins/macros/macrosettings.h index e72b4c69407..f8a490d282c 100644 --- a/src/plugins/macros/macrosettings.h +++ b/src/plugins/macros/macrosettings.h @@ -58,7 +58,6 @@ public: QString defaultDirectory; QStringList directories; QMap shortcuts; - bool showSaveDialog; }; inline bool operator==(const MacroSettings &m1, const MacroSettings &m2) { return m1.equals(m2); } diff --git a/src/plugins/macros/macrosplugin.cpp b/src/plugins/macros/macrosplugin.cpp index add7629d1f4..fad8a3cd66d 100644 --- a/src/plugins/macros/macrosplugin.cpp +++ b/src/plugins/macros/macrosplugin.cpp @@ -115,6 +115,12 @@ bool MacrosPlugin::initialize(const QStringList &arguments, QString *error_messa mmacrotools->addAction(command); connect(executeLastMacro, SIGNAL(triggered()), m_macroManager, SLOT(executeLastMacro())); + QAction *saveLastMacro = new QAction(tr("Save Last Macro"), this); + saveLastMacro->setEnabled(false); + command = am->registerAction(saveLastMacro, Constants::SAVE_LAST_MACRO, textContext); + mmacrotools->addAction(command); + connect(saveLastMacro, SIGNAL(triggered()), m_macroManager, SLOT(saveLastMacro())); + return true; } diff --git a/src/plugins/macros/savedialog.cpp b/src/plugins/macros/savedialog.cpp index 7b68ac69e58..d6a8ddfbe1c 100644 --- a/src/plugins/macros/savedialog.cpp +++ b/src/plugins/macros/savedialog.cpp @@ -62,8 +62,3 @@ QString SaveDialog::description() const { return ui->description->text(); } - -bool SaveDialog::hideSaveDialog() const -{ - return ui->hideSaveDialog->isChecked(); -} diff --git a/src/plugins/macros/savedialog.h b/src/plugins/macros/savedialog.h index 7b389fb8bbc..fb27589f1a7 100644 --- a/src/plugins/macros/savedialog.h +++ b/src/plugins/macros/savedialog.h @@ -53,7 +53,6 @@ public: QString name() const; QString description() const; - bool hideSaveDialog() const; private: Ui::SaveDialog *ui; diff --git a/src/plugins/macros/savedialog.ui b/src/plugins/macros/savedialog.ui index fbb7659bb92..1695cfe097f 100644 --- a/src/plugins/macros/savedialog.ui +++ b/src/plugins/macros/savedialog.ui @@ -7,7 +7,7 @@ 0 0 219 - 116 + 91 @@ -42,13 +42,6 @@ - - - Don't show this dialog again - - - - QDialogButtonBox::Cancel|QDialogButtonBox::Save @@ -60,7 +53,6 @@ name description - hideSaveDialog -- cgit v1.2.3