Add ignore parameter for schema entries that should be ignored by the UI and allowed regardless of content by settings validator
This commit is contained in:
@@ -280,6 +280,8 @@ ResourceManager::ResourceManager()
|
||||
logmanager_settings_schema["file_count_limit"]["default"] = 10;
|
||||
logmanager_settings_schema["file_count_limit"]["minimum"] = 0;
|
||||
|
||||
logmanager_settings_schema["dialog_no_show_hashes"]["ignore"] = true;
|
||||
|
||||
settings_manager->RegisterSettingsSchema("LogManager", QT_TRANSLATE_NOOP("Settings", "Log Manager"), logmanager_settings_schema);
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
|
||||
+17
-10
@@ -555,18 +555,25 @@ json SettingsManager::FilterSettingsAgainstSchema(std::string& settings_key, jso
|
||||
continue;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------*\
|
||||
| Check if the value type matches the schema's |
|
||||
| declared type |
|
||||
\*-------------------------------------------------*/
|
||||
if(schema_properties[key].contains("type"))
|
||||
if(!schema_properties[key].contains("ignore"))
|
||||
{
|
||||
std::string schema_type = schema_properties[key]["type"];
|
||||
|
||||
if(!SettingsValueMatchesType(value, schema_type))
|
||||
/*-------------------------------------------------*\
|
||||
| Check if the value type matches the schema's |
|
||||
| declared type |
|
||||
\*-------------------------------------------------*/
|
||||
if(schema_properties[key].contains("type"))
|
||||
{
|
||||
LOG_WARNING("[%s] Settings key \"%s\" has incorrect type (expected %s), skipping", SETTINGSMANAGER, key.c_str(), schema_type.c_str());
|
||||
continue;
|
||||
std::string schema_type = schema_properties[key]["type"];
|
||||
|
||||
if(!SettingsValueMatchesType(value, schema_type))
|
||||
{
|
||||
LOG_WARNING("[%s] Settings key \"%s\" has incorrect type (expected %s), skipping", SETTINGSMANAGER, key.c_str(), schema_type.c_str());
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_WARNING("[%s] Settings key \"%s\" is missing type field, skipping", SETTINGSMANAGER, key.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -125,6 +125,11 @@ OpenRGBDeviceEditorDialog::OpenRGBDeviceEditorDialog(RGBController *dev, QWidget
|
||||
\*-----------------------------------------------------*/
|
||||
for(std::size_t configuration_idx = 0; configuration_idx < configuration_entries.size(); configuration_idx++)
|
||||
{
|
||||
if(configuration_entries[configuration_idx].value[configuration_entries[configuration_idxsetting_idx].key].contains("ignore"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
OpenRGBDynamicSettingsWidget* item_widget = new OpenRGBDynamicSettingsWidget(configuration_entries[configuration_idx].key, configuration_entries[configuration_idx].value, configuration_value);
|
||||
|
||||
item_widget->SetCallback(Callback, this);
|
||||
|
||||
@@ -139,6 +139,11 @@ void OpenRGBSettingsPage::UpdateInterface()
|
||||
\*-----------------------------------------------------*/
|
||||
for(std::size_t setting_idx = 0; setting_idx < setting_entries.size(); setting_idx++)
|
||||
{
|
||||
if(setting_entries[setting_idx].value[setting_entries[setting_idx].key].contains("ignore"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
nlohmann::json setting_value;
|
||||
setting_value[setting_entries[setting_idx].key] = ResourceManager::get()->GetSettingsManager()->GetSettings(setting_entries[setting_idx].key);
|
||||
OpenRGBDynamicSettingsWidget* item_widget = new OpenRGBDynamicSettingsWidget(setting_entries[setting_idx].key, setting_entries[setting_idx].value, setting_value);
|
||||
|
||||
Reference in New Issue
Block a user