From 720ba2c0d8a3f281207bd3dbde8f991a75598874 Mon Sep 17 00:00:00 2001 From: Marc Zinnschlag Date: Wed, 15 Oct 2014 13:39:53 +0200 Subject: [PATCH] split off settings label from internal settings name --- apps/opencs/model/settings/setting.cpp | 15 ++++++-- apps/opencs/model/settings/setting.hpp | 8 +++-- apps/opencs/model/settings/support.hpp | 9 ++--- apps/opencs/model/settings/usersettings.cpp | 39 +++++++++++---------- apps/opencs/model/settings/usersettings.hpp | 3 +- apps/opencs/view/settings/view.cpp | 2 +- 6 files changed, 48 insertions(+), 28 deletions(-) diff --git a/apps/opencs/model/settings/setting.cpp b/apps/opencs/model/settings/setting.cpp index cf2b8178f..374462ac2 100644 --- a/apps/opencs/model/settings/setting.cpp +++ b/apps/opencs/model/settings/setting.cpp @@ -2,8 +2,8 @@ #include "support.hpp" CSMSettings::Setting::Setting(SettingType typ, const QString &settingName, - const QString &pageName) - : mIsEditorSetting (true) + const QString &pageName, const QString& label) +: mIsEditorSetting (true) { buildDefaultSetting(); @@ -17,6 +17,7 @@ CSMSettings::Setting::Setting(SettingType typ, const QString &settingName, setProperty (Property_SettingType, QVariant (settingType).toString()); setProperty (Property_Page, pageName); setProperty (Property_Name, settingName); + setProperty (Property_Label, label.isEmpty() ? settingName : label); } void CSMSettings::Setting::buildDefaultSetting() @@ -364,6 +365,16 @@ bool CSMSettings::Setting::wrapping() const return (property (Property_Wrapping).at(0) == "true"); } +void CSMSettings::Setting::setLabel (const QString& label) +{ + setProperty (Property_Label, label); +} + +QString CSMSettings::Setting::getLabel() const +{ + return property (Property_Label).at (0); +} + void CSMSettings::Setting::setProperty (SettingProperty prop, bool value) { setProperty (prop, QStringList() << QVariant (value).toString()); diff --git a/apps/opencs/model/settings/setting.hpp b/apps/opencs/model/settings/setting.hpp index 962d0a438..bc542dbd0 100644 --- a/apps/opencs/model/settings/setting.hpp +++ b/apps/opencs/model/settings/setting.hpp @@ -29,8 +29,8 @@ namespace CSMSettings public: - explicit Setting(SettingType typ, const QString &settingName, - const QString &pageName); + Setting(SettingType typ, const QString &settingName, + const QString &pageName, const QString& label = ""); void addProxy (const Setting *setting, const QStringList &vals); void addProxy (const Setting *setting, const QList &list); @@ -131,6 +131,10 @@ namespace CSMSettings void setWidgetWidth (int value); int widgetWidth() const; + /// This is the text the user gets to see. + void setLabel (const QString& label); + QString getLabel() const; + ///returns the specified property value QStringList property (SettingProperty prop) const; diff --git a/apps/opencs/model/settings/support.hpp b/apps/opencs/model/settings/support.hpp index 1e122a214..15ad34191 100644 --- a/apps/opencs/model/settings/support.hpp +++ b/apps/opencs/model/settings/support.hpp @@ -36,12 +36,13 @@ namespace CSMSettings Property_TicksAbove = 20, Property_TicksBelow = 21, Property_StyleSheet = 22, + Property_Label = 23, //Stringlists should always be the last items - Property_DefaultValues = 23, - Property_DeclaredValues = 24, - Property_DefinedValues = 25, - Property_Proxies = 26 + Property_DefaultValues = 24, + Property_DeclaredValues = 25, + Property_DefinedValues = 26, + Property_Proxies = 27 }; ///Basic setting widget types. diff --git a/apps/opencs/model/settings/usersettings.cpp b/apps/opencs/model/settings/usersettings.cpp index ad2942eac..cb4003afa 100644 --- a/apps/opencs/model/settings/usersettings.cpp +++ b/apps/opencs/model/settings/usersettings.cpp @@ -52,49 +52,49 @@ void CSMSettings::UserSettings::buildSettingModelDefaults() declareSection ("Objects"); { - Setting *numLights = createSetting (Type_SpinBox, "num_lights"); + Setting *numLights = createSetting (Type_SpinBox, "num_lights", "num_lights"); numLights->setDefaultValue(8); numLights->setRange (0, 100); - Setting *shaders = createSetting (Type_CheckBox, "shaders"); + Setting *shaders = createSetting (Type_CheckBox, "shaders", "Enable Shaders"); shaders->setDefaultValue("true"); - shaders->setSpecialValueText("Enable Shaders"); +// shaders->setSpecialValueText("Enable Shaders"); } declareSection ("Scene"); { - Setting *fastFactor = createSetting (Type_SpinBox, "fast factor"); + Setting *fastFactor = createSetting (Type_SpinBox, "fast factor", "fast factor"); fastFactor->setDefaultValue(4); fastFactor->setRange (1, 100); - Setting *farClipDist = createSetting (Type_DoubleSpinBox, "far clip distance"); + Setting *farClipDist = createSetting (Type_DoubleSpinBox, "far clip distance", "far clip distance"); farClipDist->setDefaultValue(300000); farClipDist->setRange (0, 1000000); - Setting *timerStart = createSetting (Type_SpinBox, "timer start"); + Setting *timerStart = createSetting (Type_SpinBox, "timer start", "timer start"); timerStart->setDefaultValue(20); timerStart->setRange (1, 100); } declareSection ("SubView"); { - Setting *maxSubView = createSetting (Type_SpinBox, "max subviews"); + Setting *maxSubView = createSetting (Type_SpinBox, "max subviews", "max subviews"); maxSubView->setDefaultValue(256); maxSubView->setRange (1, 256); - Setting *minWidth = createSetting (Type_SpinBox, "minimum width"); + Setting *minWidth = createSetting (Type_SpinBox, "minimum width", "minimum width"); minWidth->setDefaultValue(325); minWidth->setRange (50, 10000); - Setting *reuse = createSetting (Type_CheckBox, "reuse"); + Setting *reuse = createSetting (Type_CheckBox, "reuse", "Reuse SubView"); reuse->setDefaultValue("true"); - reuse->setSpecialValueText("Reuse SubView"); +// reuse->setSpecialValueText("Reuse SubView"); } declareSection ("Window Size"); { - Setting *width = createSetting (Type_LineEdit, "Width"); - Setting *height = createSetting (Type_LineEdit, "Height"); + Setting *width = createSetting (Type_LineEdit, "Width", "Width"); + Setting *height = createSetting (Type_LineEdit, "Height", "Height"); width->setDefaultValues (QStringList() << "1024"); height->setDefaultValues (QStringList() << "768"); @@ -105,7 +105,7 @@ void CSMSettings::UserSettings::buildSettingModelDefaults() /* *Create the proxy setting for predefined values */ - Setting *preDefined = createSetting (Type_ComboBox, "Pre-Defined"); + Setting *preDefined = createSetting (Type_ComboBox, "Pre-Defined", "Pre-Defined"); preDefined->setEditorSetting (false); @@ -131,9 +131,9 @@ void CSMSettings::UserSettings::buildSettingModelDefaults() QStringList values = QStringList() << defaultValue << "Icon Only" << "Text Only"; - Setting *rsd = createSetting (Type_RadioButton, "Record Status Display"); + Setting *rsd = createSetting (Type_RadioButton, "Record Status Display", "Record Status Display"); - Setting *ritd = createSetting (Type_RadioButton, "Referenceable ID Type Display"); + Setting *ritd = createSetting (Type_RadioButton, "Referenceable ID Type Display", "Referenceable ID Type Display"); rsd->setDeclaredValues (values); ritd->setDeclaredValues (values); @@ -144,7 +144,7 @@ void CSMSettings::UserSettings::buildSettingModelDefaults() QString defaultValue = "None"; QStringList values = QStringList() << defaultValue << "MSAA 2" << "MSAA 4" << "MSAA 8" << "MSAA 16"; - Setting *antialiasing = createSetting (Type_SpinBox, "antialiasing"); + Setting *antialiasing = createSetting (Type_SpinBox, "antialiasing", "antialiasing"); antialiasing->setDeclaredValues (values); } @@ -486,9 +486,9 @@ CSMSettings::SettingPageMap CSMSettings::UserSettings::settingPageMap() const } CSMSettings::Setting *CSMSettings::UserSettings::createSetting - (CSMSettings::SettingType type, const QString &name) + (CSMSettings::SettingType type, const QString &name, const QString& label) { - Setting *setting = new Setting (type, name, mSection); + Setting *setting = new Setting (type, name, mSection, label); // set useful defaults int row = 1; @@ -523,6 +523,9 @@ CSMSettings::Setting *CSMSettings::UserSettings::createSetting if (type==Type_CheckBox) setting->setDeclaredValues(QStringList() << "true" << "false"); + if (type==Type_CheckBox) + setting->setSpecialValueText (setting->getLabel()); + //add declaration to the model mSettings.append (setting); diff --git a/apps/opencs/model/settings/usersettings.hpp b/apps/opencs/model/settings/usersettings.hpp index ae73ff0a6..9629f6cb5 100644 --- a/apps/opencs/model/settings/usersettings.hpp +++ b/apps/opencs/model/settings/usersettings.hpp @@ -85,7 +85,8 @@ namespace CSMSettings { void buildSettingModelDefaults(); ///add a new setting to the model and return it - Setting *createSetting (CSMSettings::SettingType type, const QString &name); + Setting *createSetting (CSMSettings::SettingType type, const QString &name, + const QString& label); /// Set the section for createSetting calls. /// diff --git a/apps/opencs/view/settings/view.cpp b/apps/opencs/view/settings/view.cpp index f95bb5c03..dbe2244a6 100644 --- a/apps/opencs/view/settings/view.cpp +++ b/apps/opencs/view/settings/view.cpp @@ -17,7 +17,7 @@ CSVSettings::View::View(CSMSettings::Setting *setting, mIsMultiValue (setting->isMultiValue()), mViewKey (setting->page() + '/' + setting->name()), mSerializable (setting->serializable()), - Frame(true, setting->name(), parent) + Frame(true, setting->getLabel(), parent) { setObjectName (setting->name()); buildView();