diff --git a/data/locale/en-US.ini b/data/locale/en-US.ini index 0804ec5d..7410c329 100644 --- a/data/locale/en-US.ini +++ b/data/locale/en-US.ini @@ -1150,6 +1150,7 @@ AdvSceneSwitcher.action.http.entry.line2="Timeout:{{timeout}}seconds" AdvSceneSwitcher.action.variable="Variable" AdvSceneSwitcher.action.variable.type.set="Set to value" AdvSceneSwitcher.action.variable.type.append="Append" +AdvSceneSwitcher.action.variable.type.copy="Copy variable" AdvSceneSwitcher.action.variable.type.appendVar="Append variable" AdvSceneSwitcher.action.variable.type.increment="Increment" AdvSceneSwitcher.action.variable.type.decrement="Decrement" diff --git a/lib/macro/macro-action-variable.cpp b/lib/macro/macro-action-variable.cpp index 8b76fb1a..fa44eeca 100644 --- a/lib/macro/macro-action-variable.cpp +++ b/lib/macro/macro-action-variable.cpp @@ -286,6 +286,14 @@ bool MacroActionVariable::PerformAction() case Action::APPEND: apppend(*var, _strValue); break; + case Action::COPY_VAR: { + auto var2 = _variable2.lock(); + if (!var2) { + return true; + } + var->SetValue(var2->Value()); + break; + } case Action::APPEND_VAR: { auto var2 = _variable2.lock(); if (!var2) { @@ -670,6 +678,8 @@ static inline void populateActionSelection(QComboBox *list) actions = { {MacroActionVariable::Action::SET_VALUE, "AdvSceneSwitcher.action.variable.type.set"}, + {MacroActionVariable::Action::COPY_VAR, + "AdvSceneSwitcher.action.variable.type.copy"}, {MacroActionVariable::Action::APPEND, "AdvSceneSwitcher.action.variable.type.append"}, {MacroActionVariable::Action::PAD, @@ -1521,6 +1531,7 @@ void MacroActionVariableEdit::SetWidgetVisibility() } _variables2->setVisible( + _entryData->_action == MacroActionVariable::Action::COPY_VAR || _entryData->_action == MacroActionVariable::Action::APPEND_VAR || _entryData->_action == diff --git a/lib/macro/macro-action-variable.hpp b/lib/macro/macro-action-variable.hpp index 02a6d130..9d9f1bf5 100644 --- a/lib/macro/macro-action-variable.hpp +++ b/lib/macro/macro-action-variable.hpp @@ -55,6 +55,7 @@ public: RANDOM_NUMBER, QUERY_JSON, ARRAY_JSON, + COPY_VAR, }; Action _action = Action::SET_VALUE;