OpenMW
|
00001 #ifndef SETTINGSITEM_HPP 00002 #define SETTINGSITEM_HPP 00003 00004 #include <QObject> 00005 #include "support.hpp" 00006 #include "settingcontainer.hpp" 00007 00008 namespace CSMSettings 00009 { 00012 class SettingsItem : public SettingContainer 00013 { 00014 QStringPair *mValuePair; 00015 QStringList *mValueList; 00016 bool mIsMultiValue; 00017 QString mDefaultValue; 00018 00019 public: 00020 explicit SettingsItem(QString name, bool isMultiValue, 00021 const QString& defaultValue, QObject *parent = 0) 00022 : SettingContainer(defaultValue, parent), 00023 mIsMultiValue (isMultiValue), mValueList (0), 00024 mValuePair (0), mDefaultValue (defaultValue) 00025 { 00026 QObject::setObjectName(name); 00027 } 00028 00033 bool updateItem (const QStringList *values); 00034 bool updateItem (const QString &value); 00035 bool updateItem (int valueListIndex); 00036 00038 inline QStringList *getValueList() { return mValueList; } 00039 00041 inline void setValueList (QStringList *valueList) { mValueList = valueList; } 00042 00044 inline QStringPair *getValuePair() { return mValuePair; } 00045 00047 inline void setValuePair (QStringPair valuePair) 00048 { 00049 delete mValuePair; 00050 mValuePair = new QStringPair(valuePair); 00051 } 00052 00053 inline bool isMultivalue () { return mIsMultiValue; } 00054 00055 void setDefaultValue (const QString &value); 00056 QString getDefaultValue () const; 00057 00058 private: 00059 00063 bool validate (const QString &value); 00064 }; 00065 } 00066 #endif // SETTINGSITEM_HPP 00067