mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-08-24 10:14:13 -05:00
UI: Fixup ResolveVariable to be less jank
This commit is contained in:
+8
-11
@@ -511,25 +511,22 @@ void OBSApp::FindThemes()
|
||||
static bool ResolveVariable(const QHash<QString, OBSThemeVariable> &vars,
|
||||
OBSThemeVariable &var)
|
||||
{
|
||||
const OBSThemeVariable *varPtr = &var;
|
||||
const OBSThemeVariable *realVar = varPtr;
|
||||
if (var.type != OBSThemeVariable::Alias)
|
||||
return true;
|
||||
|
||||
while (realVar->type == OBSThemeVariable::Alias) {
|
||||
QString newKey = realVar->value.toString();
|
||||
QString key = var.value.toString();
|
||||
while (vars[key].type == OBSThemeVariable::Alias) {
|
||||
key = vars[key].value.toString();
|
||||
|
||||
if (!vars.contains(newKey)) {
|
||||
if (!vars.contains(key)) {
|
||||
blog(LOG_ERROR,
|
||||
R"(Variable "%s" (aliased by "%s") does not exist!)",
|
||||
QT_TO_UTF8(newKey), QT_TO_UTF8(var.name));
|
||||
QT_TO_UTF8(key), QT_TO_UTF8(var.name));
|
||||
return false;
|
||||
}
|
||||
|
||||
const OBSThemeVariable &newVar = vars[newKey];
|
||||
realVar = &newVar;
|
||||
}
|
||||
|
||||
if (realVar != varPtr)
|
||||
var = *realVar;
|
||||
var = vars[key];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user