diff --git a/lib/macro/macro-tab.cpp b/lib/macro/macro-tab.cpp index 6cf79076..cf6fca52 100644 --- a/lib/macro/macro-tab.cpp +++ b/lib/macro/macro-tab.cpp @@ -86,9 +86,7 @@ bool AdvSceneSwitcher::AddNewMacro(std::shared_ptr &res, return false; } - res = std::make_shared( - name, GetGlobalMacroSettings()._newMacroRegisterHotkeys, - GetGlobalMacroSettings()._newMacroUseShortCircuitEvaluation); + res = std::make_shared(name, GetGlobalMacroSettings()); return true; } diff --git a/lib/macro/macro.cpp b/lib/macro/macro.cpp index 63a920a1..d47a7ff3 100644 --- a/lib/macro/macro.cpp +++ b/lib/macro/macro.cpp @@ -3,6 +3,7 @@ #include "macro-condition-factory.hpp" #include "macro-dock.hpp" #include "macro-helpers.hpp" +#include "macro-settings.hpp" #include "plugin-state-helpers.hpp" #include "splitter-helpers.hpp" #include "sync-helpers.hpp" @@ -76,15 +77,21 @@ namespace advss { static std::deque> macros; -Macro::Macro(const std::string &name, const bool addHotkey, - const bool shortCircuitEvaluation) +Macro::Macro(const std::string &name) { SetName(name); - if (addHotkey) { +} + +Macro::Macro(const std::string &name, const GlobalMacroSettings &settings) + : Macro(name) +{ + if (settings._newMacroRegisterHotkeys) { SetupHotkeys(); } - _registerHotkeys = addHotkey; - _useShortCircuitEvaluation = shortCircuitEvaluation; + _registerHotkeys = settings._newMacroRegisterHotkeys; + _checkInParallel = settings._newMacroCheckInParallel; + _useShortCircuitEvaluation = + settings._newMacroUseShortCircuitEvaluation; } Macro::~Macro() @@ -104,7 +111,8 @@ std::shared_ptr Macro::CreateGroup(const std::string &name, std::vector> &children) { - auto group = std::make_shared(name, false); + auto group = std::make_shared(name); + group->_registerHotkeys = false; for (auto &c : children) { c->SetParent(group); } diff --git a/lib/macro/macro.hpp b/lib/macro/macro.hpp index 079f4ce2..65ec057a 100644 --- a/lib/macro/macro.hpp +++ b/lib/macro/macro.hpp @@ -20,6 +20,7 @@ namespace advss { class MacroDock; +class GlobalMacroSettings; class Macro { using TimePoint = std::chrono::high_resolution_clock::time_point; @@ -27,8 +28,8 @@ class Macro { public: enum class PauseStateSaveBehavior { PERSIST, PAUSE, UNPAUSE }; - Macro(const std::string &name = "", const bool addHotkey = false, - const bool shortCircuitEvaluation = false); + Macro(const std::string &name = ""); + Macro(const std::string &name, const GlobalMacroSettings &settings); ~Macro(); std::string Name() const { return _name; }