mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-08-12 04:11:06 -05:00
Allow using regex capture groups in replacement
This commit is contained in:
committed by
WarmUpTill
parent
c2d2e883c6
commit
0e9875e6b5
@@ -150,18 +150,12 @@ void MacroActionVariable::HandleFindAndReplace(Variable *var)
|
||||
var->SetValue(value);
|
||||
return;
|
||||
}
|
||||
QString resultString = QString::fromStdString(value);
|
||||
|
||||
QString replacement = QString::fromStdString(_replaceStr);
|
||||
auto regex = _findRegex.GetRegularExpression(_findStr);
|
||||
auto matchIterator = regex.globalMatch(QString::fromStdString(value));
|
||||
int offset = 0;
|
||||
while (matchIterator.hasNext()) {
|
||||
QRegularExpressionMatch match = matchIterator.next();
|
||||
resultString.replace(match.capturedStart() + offset,
|
||||
match.capturedLength(), replacement);
|
||||
offset += replacement.length() - match.capturedLength();
|
||||
}
|
||||
var->SetValue(resultString.toStdString());
|
||||
auto result = QString::fromStdString(value);
|
||||
result = result.replace(regex, replacement);
|
||||
var->SetValue(result.toStdString());
|
||||
}
|
||||
|
||||
void MacroActionVariable::HandleMathExpression(Variable *var)
|
||||
@@ -739,6 +733,8 @@ MacroActionVariableEdit::MacroActionVariableEdit(
|
||||
_regexMatchIdx->setMinimum(1);
|
||||
_regexMatchIdx->setMaximum(999);
|
||||
_regexMatchIdx->setSuffix(".");
|
||||
_replaceStr->setToolTip(obs_module_text(
|
||||
"AdvSceneSwitcher.action.variable.findAndReplace.replace.tooltip"));
|
||||
_inputPrompt->setSizePolicy(QSizePolicy::MinimumExpanding,
|
||||
QSizePolicy::Preferred);
|
||||
_sceneItemIndex->setMinimum(1);
|
||||
|
||||
Reference in New Issue
Block a user