1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-02-21 18:09:39 +00:00

refactored section handling

This commit is contained in:
Marc Zinnschlag 2014-10-15 12:38:17 +02:00
parent 219fbd427f
commit daf7cab416
2 changed files with 34 additions and 36 deletions

View file

@ -50,51 +50,51 @@ void CSMSettings::UserSettings::buildSettingModelDefaults()
{ {
QString section; QString section;
section = "Objects"; declareSection ("Objects");
{ {
Setting *numLights = createSetting (Type_SpinBox, section, "num_lights"); Setting *numLights = createSetting (Type_SpinBox, "num_lights");
numLights->setDefaultValue(8); numLights->setDefaultValue(8);
numLights->setRange (0, 100); numLights->setRange (0, 100);
Setting *shaders = createSetting (Type_CheckBox, section, "shaders"); Setting *shaders = createSetting (Type_CheckBox, "shaders");
shaders->setDefaultValue("true"); shaders->setDefaultValue("true");
shaders->setSpecialValueText("Enable Shaders"); shaders->setSpecialValueText("Enable Shaders");
} }
section = "Scene"; declareSection ("Scene");
{ {
Setting *fastFactor = createSetting (Type_SpinBox, section, "fast factor"); Setting *fastFactor = createSetting (Type_SpinBox, "fast factor");
fastFactor->setDefaultValue(4); fastFactor->setDefaultValue(4);
fastFactor->setRange (1, 100); fastFactor->setRange (1, 100);
Setting *farClipDist = createSetting (Type_DoubleSpinBox, section, "far clip distance"); Setting *farClipDist = createSetting (Type_DoubleSpinBox, "far clip distance");
farClipDist->setDefaultValue(300000); farClipDist->setDefaultValue(300000);
farClipDist->setRange (0, 1000000); farClipDist->setRange (0, 1000000);
Setting *timerStart = createSetting (Type_SpinBox, section, "timer start"); Setting *timerStart = createSetting (Type_SpinBox, "timer start");
timerStart->setDefaultValue(20); timerStart->setDefaultValue(20);
timerStart->setRange (1, 100); timerStart->setRange (1, 100);
} }
section = "SubView"; declareSection ("SubView");
{ {
Setting *maxSubView = createSetting (Type_SpinBox, section, "max subviews"); Setting *maxSubView = createSetting (Type_SpinBox, "max subviews");
maxSubView->setDefaultValue(256); maxSubView->setDefaultValue(256);
maxSubView->setRange (1, 256); maxSubView->setRange (1, 256);
Setting *minWidth = createSetting (Type_SpinBox, section, "minimum width"); Setting *minWidth = createSetting (Type_SpinBox, "minimum width");
minWidth->setDefaultValue(325); minWidth->setDefaultValue(325);
minWidth->setRange (50, 10000); minWidth->setRange (50, 10000);
Setting *reuse = createSetting (Type_CheckBox, section, "reuse"); Setting *reuse = createSetting (Type_CheckBox, "reuse");
reuse->setDefaultValue("true"); reuse->setDefaultValue("true");
reuse->setSpecialValueText("Reuse SubView"); reuse->setSpecialValueText("Reuse SubView");
} }
section = "Window Size"; declareSection ("Window Size");
{ {
Setting *width = createSetting (Type_LineEdit, section, "Width"); Setting *width = createSetting (Type_LineEdit, "Width");
Setting *height = createSetting (Type_LineEdit, section, "Height"); Setting *height = createSetting (Type_LineEdit, "Height");
width->setDefaultValues (QStringList() << "1024"); width->setDefaultValues (QStringList() << "1024");
height->setDefaultValues (QStringList() << "768"); height->setDefaultValues (QStringList() << "768");
@ -105,8 +105,7 @@ void CSMSettings::UserSettings::buildSettingModelDefaults()
/* /*
*Create the proxy setting for predefined values *Create the proxy setting for predefined values
*/ */
Setting *preDefined = createSetting (Type_ComboBox, section, Setting *preDefined = createSetting (Type_ComboBox, "Pre-Defined");
"Pre-Defined");
preDefined->setEditorSetting (false); preDefined->setEditorSetting (false);
@ -125,33 +124,30 @@ void CSMSettings::UserSettings::buildSettingModelDefaults()
); );
} }
section = "Display Format"; declareSection ("Display Format");
{ {
QString defaultValue = "Icon and Text"; QString defaultValue = "Icon and Text";
QStringList values = QStringList() QStringList values = QStringList()
<< defaultValue << "Icon Only" << "Text Only"; << defaultValue << "Icon Only" << "Text Only";
Setting *rsd = createSetting (Type_RadioButton, Setting *rsd = createSetting (Type_RadioButton, "Record Status Display");
section, "Record Status Display");
Setting *ritd = createSetting (Type_RadioButton, Setting *ritd = createSetting (Type_RadioButton, "Referenceable ID Type Display");
section, "Referenceable ID Type Display");
rsd->setDeclaredValues (values); rsd->setDeclaredValues (values);
ritd->setDeclaredValues (values); ritd->setDeclaredValues (values);
} }
section = "Video"; declareSection ("Video");
{ {
QString defaultValue = "None"; QString defaultValue = "None";
QStringList values = QStringList() QStringList values = QStringList()
<< defaultValue << "MSAA 2" << "MSAA 4" << "MSAA 8" << "MSAA 16"; << defaultValue << "MSAA 2" << "MSAA 4" << "MSAA 8" << "MSAA 16";
Setting *antialiasing = createSetting (Type_SpinBox, section, "antialiasing"); Setting *antialiasing = createSetting (Type_SpinBox, "antialiasing");
antialiasing->setDeclaredValues (values); antialiasing->setDeclaredValues (values);
} }
section = "Proxy Selection Test";
{ {
/****************************************************************** /******************************************************************
* There are three types of values: * There are three types of values:
@ -490,17 +486,9 @@ CSMSettings::SettingPageMap CSMSettings::UserSettings::settingPageMap() const
} }
CSMSettings::Setting *CSMSettings::UserSettings::createSetting CSMSettings::Setting *CSMSettings::UserSettings::createSetting
(CSMSettings::SettingType type, const QString &page, const QString &name) (CSMSettings::SettingType type, const QString &name)
{ {
//get list of all settings for the current setting name Setting *setting = new Setting (type, name, mSection);
if (findSetting (page, name))
{
qWarning() << "Duplicate declaration encountered: "
<< (name + '/' + page);
return 0;
}
Setting *setting = new Setting (type, name, page);
// set useful defaults // set useful defaults
int row = 1; int row = 1;
@ -541,6 +529,11 @@ CSMSettings::Setting *CSMSettings::UserSettings::createSetting
return setting; return setting;
} }
void CSMSettings::UserSettings::declareSection (const QString& page)
{
mSection = page;
}
QStringList CSMSettings::UserSettings::definitions (const QString &viewKey) const QStringList CSMSettings::UserSettings::definitions (const QString &viewKey) const
{ {
if (mSettingDefinitions->contains (viewKey)) if (mSettingDefinitions->contains (viewKey))

View file

@ -35,6 +35,7 @@ namespace CSMSettings {
QSettings *mSettingDefinitions; QSettings *mSettingDefinitions;
QSettings *mSettingCfgDefinitions; QSettings *mSettingCfgDefinitions;
QList <Setting *> mSettings; QList <Setting *> mSettings;
QString mSection;
public: public:
@ -84,8 +85,12 @@ namespace CSMSettings {
void buildSettingModelDefaults(); void buildSettingModelDefaults();
///add a new setting to the model and return it ///add a new setting to the model and return it
Setting *createSetting (CSMSettings::SettingType typ, Setting *createSetting (CSMSettings::SettingType type, const QString &name);
const QString &page, const QString &name);
/// Set the section for createSetting calls.
///
/// Sections can be declared multiple times.
void declareSection (const QString& page);
signals: signals: