1
0
forked from 0ad/0ad

Adds more flexible dependencies to options.

Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4354
This was SVN commit r26030.
This commit is contained in:
Vladislav Belov 2021-12-04 20:09:53 +00:00
parent 5d3902498f
commit 670f5f9a40
2 changed files with 18 additions and 5 deletions

View File

@ -312,16 +312,29 @@ function displayOptions()
function enableButtons()
{
g_Options[g_TabCategorySelected].options.forEach((option, i) => {
const isDependencyMet = dependency => {
if (typeof dependency === "string")
return Engine.ConfigDB_GetValue("user", dependency) == "true";
else if (typeof dependency === "object")
{
const availableOps = {
"==": (config, value) => config == value,
"!=": (config, value) => config != value
};
const op = availableOps[dependency.op] || availableOps["=="];
return op(Engine.ConfigDB_GetValue("user", dependency.config), dependency.value);
}
error("Unsupported dependency: " + uneval(dependency));
return false;
};
let enabled =
!option.dependencies ||
option.dependencies.every(config => Engine.ConfigDB_GetValue("user", config) == "true");
const enabled = !option.dependencies || option.dependencies.every(isDependencyMet);
Engine.GetGUIObjectByName("option_label[" + i + "]").enabled = enabled;
Engine.GetGUIObjectByName("option_control_" + option.type + "[" + i + "]").enabled = enabled;
});
let hasChanges = Engine.ConfigDB_HasChanges("user");
const hasChanges = Engine.ConfigDB_HasChanges("user");
Engine.GetGUIObjectByName("revertChanges").enabled = hasChanges;
Engine.GetGUIObjectByName("saveChanges").enabled = hasChanges;
}

View File

@ -225,7 +225,7 @@
"type": "slider",
"label": "Sharpness factor",
"tooltip": "The sharpness of the choosen pass.",
"dependencies": ["postproc", "preferglsl"],
"dependencies": ["postproc", "preferglsl", { "config": "sharpening", "op": "!=", "value": "disabled" }],
"config": "sharpness",
"min": 0,
"max": 1