Add variable values swap action

This commit is contained in:
Przemek Pawlas 2024-05-24 01:27:40 +02:00 committed by WarmUpTill
parent 7cc44b4470
commit 1f1ef4ca03
3 changed files with 18 additions and 2 deletions

View File

@ -987,6 +987,7 @@ AdvSceneSwitcher.action.variable.type.setToTempvar.help="This action type will a
AdvSceneSwitcher.action.variable.type.sceneItemName="Set to scene item name at index"
AdvSceneSwitcher.action.variable.type.padValue="Pad current value"
AdvSceneSwitcher.action.variable.type.truncateValue="Truncate current value"
AdvSceneSwitcher.action.variable.type.swapValues="Swap variable values"
AdvSceneSwitcher.action.variable.truncateOrPadDirection.left="Left"
AdvSceneSwitcher.action.variable.truncateOrPadDirection.right="Right"
AdvSceneSwitcher.action.variable.askForValuePromptDefault="Assign value to variable \"%1\":"

View File

@ -59,6 +59,8 @@ const static std::map<MacroActionVariable::Type, std::string> actionTypes = {
"AdvSceneSwitcher.action.variable.type.padValue"},
{MacroActionVariable::Type::TRUNCATE,
"AdvSceneSwitcher.action.variable.type.truncateValue"},
{MacroActionVariable::Type::SWAP_VALUES,
"AdvSceneSwitcher.action.variable.type.swapValues"},
};
static void apppend(Variable &var, const std::string &value)
@ -393,6 +395,17 @@ bool MacroActionVariable::PerformAction()
var->SetValue(
truncate(var->Value(), _direction, _stringLength));
return true;
case Type::SWAP_VALUES: {
auto var2 = _variable2.lock();
if (!var2) {
return true;
}
auto tempValue = var->Value();
var->SetValue(var2->Value());
var2->SetValue(tempValue);
return true;
}
}
return true;
@ -1318,8 +1331,9 @@ void MacroActionVariableEdit::SetWidgetVisibility()
AddStretchIfNecessary(_entryLayout);
}
_variables2->setVisible(_entryData->_type ==
MacroActionVariable::Type::APPEND_VAR);
_variables2->setVisible(
_entryData->_type == MacroActionVariable::Type::APPEND_VAR ||
_entryData->_type == MacroActionVariable::Type::SWAP_VALUES);
_strValue->setVisible(
_entryData->_type ==
MacroActionVariable::Type::SET_FIXED_VALUE ||

View File

@ -48,6 +48,7 @@ public:
SCENE_ITEM_NAME,
PAD,
TRUNCATE,
SWAP_VALUES,
};
Type _type = Type::SET_FIXED_VALUE;