From ec07dcede7f0865adba36b2aab8cff96747ea5f0 Mon Sep 17 00:00:00 2001 From: Paddle Date: Wed, 27 Sep 2023 10:43:39 +0200 Subject: [PATCH] Remove macro recording stop from toolbar and menu, and adds the stop functionality to the main macro recording command. --- src/Gui/CommandMacro.cpp | 25 ++++++++++++++++++++++--- src/Gui/Workbench.cpp | 5 ++--- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/Gui/CommandMacro.cpp b/src/Gui/CommandMacro.cpp index 5d5da00aed..91a5fd85a9 100644 --- a/src/Gui/CommandMacro.cpp +++ b/src/Gui/CommandMacro.cpp @@ -21,9 +21,14 @@ ***************************************************************************/ #include "PreCompiled.h" +#ifndef _PreComp_ +# include +#endif #include "Command.h" +#include "Action.h" #include "Application.h" +#include "BitmapFactory.h" #include "DlgMacroExecuteImp.h" #include "DlgMacroRecordImp.h" #include "Macro.h" @@ -54,13 +59,27 @@ StdCmdDlgMacroRecord::StdCmdDlgMacroRecord() void StdCmdDlgMacroRecord::activated(int iMsg) { Q_UNUSED(iMsg); - Gui::Dialog::DlgMacroRecordImp cDlg(getMainWindow()); - cDlg.exec(); + if (!getGuiApplication()->macroManager()->isOpen()){ + Gui::Dialog::DlgMacroRecordImp cDlg(getMainWindow()); + if (cDlg.exec() && getAction()) { + getAction()->setIcon(Gui::BitmapFactory().iconFromTheme("media-playback-stop")); + getAction()->setText(QCoreApplication::translate("StdCmdDlgMacroRecord", "S&top macro recording")); + getAction()->setToolTip(QCoreApplication::translate("StdCmdDlgMacroRecord", "Stop the macro recording session")); + } + } + else { + getGuiApplication()->macroManager()->commit(); + if (getAction()) { + getAction()->setIcon(Gui::BitmapFactory().iconFromTheme("media-record")); + getAction()->setText(QString::fromLatin1(sMenuText)); + getAction()->setToolTip(QString::fromLatin1(sToolTipText)); + } + } } bool StdCmdDlgMacroRecord::isActive() { - return ! (getGuiApplication()->macroManager()->isOpen()); + return true; } //=========================================================================== diff --git a/src/Gui/Workbench.cpp b/src/Gui/Workbench.cpp index f195a88901..a69426e3d0 100644 --- a/src/Gui/Workbench.cpp +++ b/src/Gui/Workbench.cpp @@ -722,7 +722,6 @@ MenuItem* StdWorkbench::setupMenuBar() const auto macro = new MenuItem( menuBar ); macro->setCommand("&Macro"); *macro << "Std_DlgMacroRecord" - << "Std_MacroStopRecord" << "Std_DlgMacroExecute" << "Std_RecentMacros" << "Separator" @@ -786,7 +785,7 @@ ToolBarItem* StdWorkbench::setupToolBars() const // Macro auto macro = new ToolBarItem( root ); macro->setCommand("Macro"); - *macro << "Std_DlgMacroRecord" << "Std_MacroStopRecord" << "Std_DlgMacroExecute" + *macro << "Std_DlgMacroRecord" << "Std_DlgMacroExecute" << "Std_DlgMacroExecuteDirect"; // View @@ -825,7 +824,7 @@ ToolBarItem* StdWorkbench::setupCommandBars() const // Special Ops auto macro = new ToolBarItem( root ); macro->setCommand("Special Ops"); - *macro << "Std_DlgParameter" << "Std_DlgPreferences" << "Std_DlgMacroRecord" << "Std_MacroStopRecord" + *macro << "Std_DlgParameter" << "Std_DlgPreferences" << "Std_DlgMacroRecord" << "Std_DlgMacroExecute" << "Std_DlgCustomize"; return root;