Clean up locale and variable condition

This commit is contained in:
WarmUpTill 2023-11-15 10:29:53 +01:00 committed by WarmUpTill
parent 1e178f4223
commit 15379a8e20
8 changed files with 51 additions and 62 deletions

View File

@ -391,7 +391,6 @@ AdvSceneSwitcher.condition.variable.type.valueChanged="Wert verändert"
AdvSceneSwitcher.condition.variable.type.equalsVariable="entspricht Variable"
AdvSceneSwitcher.condition.variable.type.lessThanVariable="ist kleiner als die Variable"
AdvSceneSwitcher.condition.variable.type.greaterThanVariable="ist größer als die Variable"
AdvSceneSwitcher.condition.variable.entry="{{variables}}{{conditions}}{{strValue}}{{numValue}}{{variables2}}"
; Macro Actions
AdvSceneSwitcher.action.scene="Szene wechseln"

View File

@ -473,7 +473,7 @@ AdvSceneSwitcher.condition.variable.type.valueChanged="value changed"
AdvSceneSwitcher.condition.variable.type.equalsVariable="equals variable"
AdvSceneSwitcher.condition.variable.type.lessThanVariable="is less than variable"
AdvSceneSwitcher.condition.variable.type.greaterThanVariable="is greater than variable"
AdvSceneSwitcher.condition.variable.entry="{{variables}}{{conditions}}{{strValue}}{{numValue}}{{variables2}}"
AdvSceneSwitcher.condition.variable.entry="{{variables}}{{conditions}}{{strValue}}{{numValue}}{{variables2}}{{regex}}"
AdvSceneSwitcher.condition.run="Run"
AdvSceneSwitcher.condition.run.entry="Process exits before timeout of{{timeout}}seconds"
AdvSceneSwitcher.condition.run.entry.exit="{{checkExitCode}}Check for exit code{{exitCode}}"

View File

@ -277,7 +277,6 @@ AdvSceneSwitcher.condition.sceneTransform="Transformar elemento de escena"
AdvSceneSwitcher.condition.sceneTransform.getTransform="Obtener transformación"
AdvSceneSwitcher.condition.sceneTransform.entry.line1="En{{scenes}}{{sources}}{{types}}"
AdvSceneSwitcher.condition.sceneTransform.entry.type.matches="coincide con la transformación"
; AdvSceneSwitcher.condition.sceneTransform.entry.type.changed=
AdvSceneSwitcher.condition.sceneTransform.entry.line2="{{settings}}"
AdvSceneSwitcher.condition.sceneTransform.entry.line3="{{regex}} {{getSettings}}"
AdvSceneSwitcher.condition.transition="Transición"

View File

@ -388,7 +388,6 @@ AdvSceneSwitcher.condition.sceneTransform="Transformation de l'élément de la s
AdvSceneSwitcher.condition.sceneTransform.getTransform="Obtenir la transformation"
AdvSceneSwitcher.condition.sceneTransform.entry.line1="Sur{{scenes}}{{sources}}{{types}}"
AdvSceneSwitcher.condition.sceneTransform.entry.type.matches="correspond à la transformation"
; AdvSceneSwitcher.condition.sceneTransform.entry.type.changed=
AdvSceneSwitcher.condition.transition="Transition"
AdvSceneSwitcher.condition.transition.type.current="Le type de transition actuel est"
AdvSceneSwitcher.condition.transition.type.duration="La durée de la transition actuelle est"
@ -741,7 +740,7 @@ AdvSceneSwitcher.action.twitch.type.title="Définir le titre du flux"
AdvSceneSwitcher.action.twitch.type.category="Définir la catégorie du flux"
AdvSceneSwitcher.action.twitch.type.commercial="Démarrer une publicité d'une durée de"
AdvSceneSwitcher.action.twitch.categorySelectionDisabled="Impossible de sélectionner une catégorie sans avoir d'abord sélectionné un compte Twitch !"
AdvSceneSwitcher.action.twitch.entry.line1="Sur{{account}}{{actions}}{{streamTitle}}{{category}}{{manualCategorySearch}}{{markerDescription}}{{clipHasDelay}}{{duration}}{{announcementMessage}}{{announcementColor}}{{channel}}"
AdvSceneSwitcher.action.twitch.entry.line1="Sur{{account}}{{actions}}{{streamTitle}}{{category}}{{markerDescription}}{{clipHasDelay}}{{duration}}{{announcementColor}}{{channel}}"
; Transition Tab
AdvSceneSwitcher.transitionTab.title="Transition"

View File

@ -233,7 +233,6 @@ AdvSceneSwitcher.condition.sceneTransform="Sahne öğesi dönüşümü"
AdvSceneSwitcher.condition.sceneTransform.getTransform="Dönüşümü al"
AdvSceneSwitcher.condition.sceneTransform.entry.line1="Açık{{scenes}}{{sources}}{{types}}"
AdvSceneSwitcher.condition.sceneTransform.entry.type.matches="dönüşümle eşleşir"
; AdvSceneSwitcher.condition.sceneTransform.entry.type.changed=
AdvSceneSwitcher.condition.sceneTransform.entry.line2="{{settings}}"
AdvSceneSwitcher.condition.sceneTransform.entry.line3="{{regex}} {{getSettings}}"
AdvSceneSwitcher.condition.transition="Geçiş"

View File

@ -373,7 +373,6 @@ AdvSceneSwitcher.condition.sceneTransform="场景项目被改变"
AdvSceneSwitcher.condition.sceneTransform.getTransform="内容或者设置被改变了"
AdvSceneSwitcher.condition.sceneTransform.entry.line1="在 {{scenes}} {{sources}} {{types}}"
AdvSceneSwitcher.condition.sceneTransform.entry.type.matches="匹配变换"
; AdvSceneSwitcher.condition.sceneTransform.entry.type.changed=
AdvSceneSwitcher.condition.sceneTransform.entry.line2="{{settings}}"
AdvSceneSwitcher.condition.sceneTransform.entry.line3="{{regex}} {{getSettings}}"
AdvSceneSwitcher.condition.transition="转场"
@ -437,7 +436,6 @@ AdvSceneSwitcher.condition.variable.type.valueChanged="值已更改"
AdvSceneSwitcher.condition.variable.type.equalsVariable="等于变量"
AdvSceneSwitcher.condition.variable.type.lessThanVariable="小于变量"
AdvSceneSwitcher.condition.variable.type.greaterThanVariable="大于变量"
AdvSceneSwitcher.condition.variable.entry="{{variables}}{{conditions}}{{strValue}}{{numValue}}{{variables2}}"
AdvSceneSwitcher.condition.run="运行"
AdvSceneSwitcher.condition.run.entry="进程在超时 {{timeout}} 秒之前退出"
AdvSceneSwitcher.condition.run.entry.exit="{{checkExitCode}}检查退出代码{{exitCode}}"

View File

@ -1,8 +1,6 @@
#include "macro-condition-variable.hpp"
#include "utility.hpp"
#include <regex>
namespace advss {
const std::string MacroConditionVariable::id = "variable";
@ -12,25 +10,25 @@ bool MacroConditionVariable::_registered = MacroConditionFactory::Register(
{MacroConditionVariable::Create, MacroConditionVariableEdit::Create,
"AdvSceneSwitcher.condition.variable"});
const static std::map<MacroConditionVariable::Type, std::string>
const static std::map<MacroConditionVariable::Condition, std::string>
conditionTypes = {
{MacroConditionVariable::Type::EQUALS,
{MacroConditionVariable::Condition::EQUALS,
"AdvSceneSwitcher.condition.variable.type.compare"},
{MacroConditionVariable::Type::IS_EMPTY,
{MacroConditionVariable::Condition::IS_EMPTY,
"AdvSceneSwitcher.condition.variable.type.empty"},
{MacroConditionVariable::Type::IS_NUMBER,
{MacroConditionVariable::Condition::IS_NUMBER,
"AdvSceneSwitcher.condition.variable.type.number"},
{MacroConditionVariable::Type::LESS_THAN,
{MacroConditionVariable::Condition::LESS_THAN,
"AdvSceneSwitcher.condition.variable.type.lessThan"},
{MacroConditionVariable::Type::GREATER_THAN,
{MacroConditionVariable::Condition::GREATER_THAN,
"AdvSceneSwitcher.condition.variable.type.greaterThan"},
{MacroConditionVariable::Type::VALUE_CHANGED,
{MacroConditionVariable::Condition::VALUE_CHANGED,
"AdvSceneSwitcher.condition.variable.type.valueChanged"},
{MacroConditionVariable::Type::EQUALS_VARIABLE,
{MacroConditionVariable::Condition::EQUALS_VARIABLE,
"AdvSceneSwitcher.condition.variable.type.equalsVariable"},
{MacroConditionVariable::Type::LESS_THAN_VARIABLE,
{MacroConditionVariable::Condition::LESS_THAN_VARIABLE,
"AdvSceneSwitcher.condition.variable.type.lessThanVariable"},
{MacroConditionVariable::Type::GREATER_THAN_VARIABLE,
{MacroConditionVariable::Condition::GREATER_THAN_VARIABLE,
"AdvSceneSwitcher.condition.variable.type.greaterThanVariable"},
};
@ -62,7 +60,7 @@ bool MacroConditionVariable::Compare(const Variable &var) const
return match.hasMatch();
}
return _strValue == var.Value();
return std::string(_strValue) == var.Value();
}
bool MacroConditionVariable::ValueChanged(const Variable &var)
@ -87,12 +85,12 @@ bool MacroConditionVariable::CompareVariables()
bool validNumbers = val1.has_value() && val2.has_value();
switch (_type) {
case MacroConditionVariable::Type::EQUALS_VARIABLE:
case MacroConditionVariable::Condition::EQUALS_VARIABLE:
return var1->Value() == var2->Value() ||
(validNumbers && val1 == val2);
case MacroConditionVariable::Type::LESS_THAN_VARIABLE:
case MacroConditionVariable::Condition::LESS_THAN_VARIABLE:
return validNumbers && val1 < val2;
case MacroConditionVariable::Type::GREATER_THAN_VARIABLE:
case MacroConditionVariable::Condition::GREATER_THAN_VARIABLE:
return validNumbers && val1 > val2;
default:
blog(LOG_WARNING,
@ -111,23 +109,23 @@ bool MacroConditionVariable::CheckCondition()
}
switch (_type) {
case MacroConditionVariable::Type::EQUALS:
case MacroConditionVariable::Condition::EQUALS:
return Compare(*var);
case MacroConditionVariable::Type::IS_EMPTY:
case MacroConditionVariable::Condition::IS_EMPTY:
return var->Value().empty();
case MacroConditionVariable::Type::IS_NUMBER:
case MacroConditionVariable::Condition::IS_NUMBER:
return isNumber(*var);
case MacroConditionVariable::Type::LESS_THAN:
case MacroConditionVariable::Condition::LESS_THAN:
return compareNumber(*var, _numValue, true);
case MacroConditionVariable::Type::GREATER_THAN:
case MacroConditionVariable::Condition::GREATER_THAN:
return compareNumber(*var, _numValue, false);
case MacroConditionVariable::Type::VALUE_CHANGED:
case MacroConditionVariable::Condition::VALUE_CHANGED:
return ValueChanged(*var);
case MacroConditionVariable::Type::EQUALS_VARIABLE:
case MacroConditionVariable::Condition::EQUALS_VARIABLE:
return CompareVariables();
case MacroConditionVariable::Type::LESS_THAN_VARIABLE:
case MacroConditionVariable::Condition::LESS_THAN_VARIABLE:
return CompareVariables();
case MacroConditionVariable::Type::GREATER_THAN_VARIABLE:
case MacroConditionVariable::Condition::GREATER_THAN_VARIABLE:
return CompareVariables();
}
@ -141,7 +139,7 @@ bool MacroConditionVariable::Save(obs_data_t *obj) const
GetWeakVariableName(_variable).c_str());
obs_data_set_string(obj, "variable2Name",
GetWeakVariableName(_variable2).c_str());
obs_data_set_string(obj, "strValue", _strValue.c_str());
_strValue.Save(obj, "strValue");
obs_data_set_double(obj, "numValue", _numValue);
obs_data_set_int(obj, "condition", static_cast<int>(_type));
_regex.Save(obj);
@ -155,9 +153,9 @@ bool MacroConditionVariable::Load(obs_data_t *obj)
GetWeakVariableByName(obs_data_get_string(obj, "variableName"));
_variable2 = GetWeakVariableByName(
obs_data_get_string(obj, "variable2Name"));
_strValue = obs_data_get_string(obj, "strValue");
_strValue.Load(obj, "strValue");
_numValue = obs_data_get_double(obj, "numValue");
_type = static_cast<Type>(obs_data_get_int(obj, "condition"));
_type = static_cast<Condition>(obs_data_get_int(obj, "condition"));
_regex.Load(obj);
// TODO: remove in future version
if (obs_data_has_user_value(obj, "regex")) {
@ -185,7 +183,7 @@ MacroConditionVariableEdit::MacroConditionVariableEdit(
_variables(new VariableSelection(this)),
_variables2(new VariableSelection(this)),
_conditions(new QComboBox()),
_strValue(new ResizingPlainTextEdit(this, 5, 1, 1)),
_strValue(new VariableTextEdit(this, 5, 1, 1)),
_numValue(new QDoubleSpinBox()),
_regex(new RegexConfigWidget(parent))
{
@ -215,19 +213,11 @@ MacroConditionVariableEdit::MacroConditionVariableEdit(
{"{{regex}}", _regex},
};
QHBoxLayout *layout = new QHBoxLayout;
auto layout = new QHBoxLayout;
PlaceWidgets(
obs_module_text("AdvSceneSwitcher.condition.variable.entry"),
layout, widgetPlaceholders);
auto *regexLayout = new QHBoxLayout;
regexLayout->addWidget(_regex);
regexLayout->addStretch();
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout(layout);
mainLayout->addLayout(regexLayout);
setLayout(mainLayout);
setLayout(layout);
_entryData = entryData;
UpdateEntryData();
@ -243,7 +233,7 @@ void MacroConditionVariableEdit::UpdateEntryData()
_variables->SetVariable(_entryData->_variable);
_variables2->SetVariable(_entryData->_variable2);
_conditions->setCurrentIndex(static_cast<int>(_entryData->_type));
_strValue->setPlainText(QString::fromStdString(_entryData->_strValue));
_strValue->setPlainText(_entryData->_strValue);
_numValue->setValue(_entryData->_numValue);
_regex->SetRegexConfig(_entryData->_regex);
SetWidgetVisibility();
@ -277,7 +267,8 @@ void MacroConditionVariableEdit::ConditionChanged(int value)
}
auto lock = LockContext();
_entryData->_type = static_cast<MacroConditionVariable::Type>(value);
_entryData->_type =
static_cast<MacroConditionVariable::Condition>(value);
SetWidgetVisibility();
}
@ -290,6 +281,7 @@ void MacroConditionVariableEdit::StrValueChanged()
auto lock = LockContext();
_entryData->_strValue = _strValue->toPlainText().toStdString();
adjustSize();
updateGeometry();
}
void MacroConditionVariableEdit::NumValueChanged(double val)
@ -321,24 +313,26 @@ void MacroConditionVariableEdit::SetWidgetVisibility()
}
_regex->setVisible(_entryData->_type ==
MacroConditionVariable::Type::EQUALS);
MacroConditionVariable::Condition::EQUALS);
_strValue->setVisible(_entryData->_type ==
MacroConditionVariable::Type::EQUALS);
MacroConditionVariable::Condition::EQUALS);
_numValue->setVisible(
_entryData->_type == MacroConditionVariable::Type::LESS_THAN ||
_entryData->_type ==
MacroConditionVariable::Type::GREATER_THAN);
MacroConditionVariable::Condition::LESS_THAN ||
_entryData->_type ==
MacroConditionVariable::Condition::GREATER_THAN);
_numValue->setVisible(
_entryData->_type == MacroConditionVariable::Type::LESS_THAN ||
_entryData->_type ==
MacroConditionVariable::Type::GREATER_THAN);
MacroConditionVariable::Condition::LESS_THAN ||
_entryData->_type ==
MacroConditionVariable::Condition::GREATER_THAN);
_variables2->setVisible(
_entryData->_type ==
MacroConditionVariable::Type::EQUALS_VARIABLE ||
MacroConditionVariable::Condition::EQUALS_VARIABLE ||
_entryData->_type ==
MacroConditionVariable::Type::LESS_THAN_VARIABLE ||
MacroConditionVariable::Condition::LESS_THAN_VARIABLE ||
_entryData->_type ==
MacroConditionVariable::Type::GREATER_THAN_VARIABLE);
MacroConditionVariable::Condition::GREATER_THAN_VARIABLE);
adjustSize();
updateGeometry();

View File

@ -3,6 +3,7 @@
#include "resizing-text-edit.hpp"
#include "variable.hpp"
#include "regex-config.hpp"
#include "variable-text-edit.hpp"
#include <QWidget>
#include <QComboBox>
@ -24,7 +25,7 @@ public:
return std::make_shared<MacroConditionVariable>(m);
}
enum class Type {
enum class Condition {
EQUALS,
IS_EMPTY,
IS_NUMBER,
@ -36,10 +37,10 @@ public:
GREATER_THAN_VARIABLE,
};
Type _type = Type::EQUALS;
Condition _type = Condition::EQUALS;
std::weak_ptr<Variable> _variable;
std::weak_ptr<Variable> _variable2;
std::string _strValue = "";
StringVariable _strValue = "";
double _numValue = 0;
RegexConfig _regex;
@ -86,7 +87,7 @@ protected:
VariableSelection *_variables;
VariableSelection *_variables2;
QComboBox *_conditions;
ResizingPlainTextEdit *_strValue;
VariableTextEdit *_strValue;
QDoubleSpinBox *_numValue;
RegexConfigWidget *_regex;
std::shared_ptr<MacroConditionVariable> _entryData;