diff --git a/ResourceManager.cpp b/ResourceManager.cpp index 13d0bfc73..cd992d581 100644 --- a/ResourceManager.cpp +++ b/ResourceManager.cpp @@ -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); /*-----------------------------------------------------*\ diff --git a/SettingsManager.cpp b/SettingsManager.cpp index 0f26bc7ec..a91d983bf 100644 --- a/SettingsManager.cpp +++ b/SettingsManager.cpp @@ -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()); } } diff --git a/qt/OpenRGBDeviceEditorDialog/OpenRGBDeviceEditorDialog.cpp b/qt/OpenRGBDeviceEditorDialog/OpenRGBDeviceEditorDialog.cpp index 99b1d1a4b..059bfb078 100644 --- a/qt/OpenRGBDeviceEditorDialog/OpenRGBDeviceEditorDialog.cpp +++ b/qt/OpenRGBDeviceEditorDialog/OpenRGBDeviceEditorDialog.cpp @@ -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); diff --git a/qt/OpenRGBSettingsPage/OpenRGBSettingsPage.cpp b/qt/OpenRGBSettingsPage/OpenRGBSettingsPage.cpp index eb28f17c2..a650d8952 100644 --- a/qt/OpenRGBSettingsPage/OpenRGBSettingsPage.cpp +++ b/qt/OpenRGBSettingsPage/OpenRGBSettingsPage.cpp @@ -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);