From 239a05b242b9162fd7a5ab13dcfa86b097c5ad55 Mon Sep 17 00:00:00 2001 From: tarman3 Date: Mon, 26 May 2025 18:47:16 +0300 Subject: [PATCH] command to open folder with macros --- src/Gui/CommandMacro.cpp | 32 ++++++ src/Gui/Icons/MacroFolder.svg | 211 ++++++++++++++++++++++++++++++++++ src/Gui/Icons/resource.qrc | 1 + 3 files changed, 244 insertions(+) create mode 100644 src/Gui/Icons/MacroFolder.svg diff --git a/src/Gui/CommandMacro.cpp b/src/Gui/CommandMacro.cpp index ed022cde1a..78defd427a 100644 --- a/src/Gui/CommandMacro.cpp +++ b/src/Gui/CommandMacro.cpp @@ -23,6 +23,8 @@ #include "PreCompiled.h" #ifndef _PreComp_ # include +# include +# include #endif #include "Command.h" @@ -302,6 +304,35 @@ bool StdCmdToggleBreakpoint::isActive() return getGuiApplication()->sendHasMsgToActiveView("ToggleBreakpoint"); } +DEF_STD_CMD_A(StdCmdMacrosFolder) + +StdCmdMacrosFolder::StdCmdMacrosFolder() +: Command("Std_OpenMacrosFolder") +{ + sGroup = "Macro"; + sMenuText = QT_TR_NOOP("Open macros containing folder"); + sToolTipText = QT_TR_NOOP("Open macros containing folder by default system file manager"); + sWhatsThis = "Std_OpenMacrosFolder"; + sStatusTip = QT_TR_NOOP("Open macros containing folder by default system file manager"); + sPixmap = "MacroFolder"; + sAccel = ""; + eType = 0; +} + +void StdCmdMacrosFolder::activated(int iMsg) +{ + Q_UNUSED(iMsg); + + QString path = QString::fromStdString(App::Application::getUserMacroDir()); + QUrl url = QUrl::fromLocalFile(path); + QDesktopServices::openUrl(url); +} + +bool StdCmdMacrosFolder::isActive() +{ + return true; +} + namespace Gui { void CreateMacroCommands() @@ -309,6 +340,7 @@ void CreateMacroCommands() CommandManager &rcCmdMgr = Application::Instance->commandManager(); rcCmdMgr.addCommand(new StdCmdDlgMacroRecord()); rcCmdMgr.addCommand(new StdCmdDlgMacroExecute()); + rcCmdMgr.addCommand(new StdCmdMacrosFolder()); rcCmdMgr.addCommand(new StdCmdDlgMacroExecuteDirect()); rcCmdMgr.addCommand(new StdCmdMacroAttachDebugger()); rcCmdMgr.addCommand(new StdCmdMacroStartDebug()); diff --git a/src/Gui/Icons/MacroFolder.svg b/src/Gui/Icons/MacroFolder.svg new file mode 100644 index 0000000000..a3e1cd455f --- /dev/null +++ b/src/Gui/Icons/MacroFolder.svg @@ -0,0 +1,211 @@ + +image/svg+xml2015-07-04https://www.freecad.org/wiki/index.php?title=ArtworkFreeCADFreeCAD/src/Mod/Path/Gui/Resources/icons/Path-Stock.svgFreeCAD LGPL2+https://www.gnu.org/copyleft/lesser.html[agryson] Alexander Gryson diff --git a/src/Gui/Icons/resource.qrc b/src/Gui/Icons/resource.qrc index 67895c44cf..1621edbb4a 100644 --- a/src/Gui/Icons/resource.qrc +++ b/src/Gui/Icons/resource.qrc @@ -193,6 +193,7 @@ Std_CoordinateSystem_alt.svg Std_Placement.svg MacroEditor.svg + MacroFolder.svg Param_Bool.svg Param_Float.svg Param_Int.svg