OpenMW
apps/opencs/model/settings/settingsitem.hpp
Go to the documentation of this file.
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