From 8ec4849b1dcc69ac268c94a7c5304e70c8799f22 Mon Sep 17 00:00:00 2001 From: WarmUpTill <19472752+WarmUpTill@users.noreply.github.com> Date: Thu, 13 Nov 2025 18:59:22 +0100 Subject: [PATCH] Add option copy value of another variable --- data/locale/en-US.ini | 1 + lib/macro/macro-action-variable.cpp | 11 +++++++++++ lib/macro/macro-action-variable.hpp | 1 + 3 files changed, 13 insertions(+) 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;