-
-class Settings {
-
- public:
- //Settings();
- //~Settings();
- static void init();
- static void setProfile(const QString &string);
- static QString profile();
-
- static void setGuiValue(const QString &key, const QVariant &value);
- static QVariant guiValue (const QString &key, const QVariant &defaultValue = QVariant());
- static void setCoreValue(const QString &user, const QString &key, const QVariant &value);
- static QVariant coreValue (const QString &user, const QString& key, const QVariant &defaultValue = QVariant());
-
- private:
- static QString curProfile;
-
+#include <QSettings>
+
+class Settings : private QSettings {
+public:
+ enum Mode { Default, Custom };
+
+protected:
+ Settings(QString group, QString applicationName);
+
+ inline void setGroup(const QString &group_) { group = group_; }
+
+ virtual QStringList allLocalKeys();
+ virtual QStringList localChildKeys(const QString &rootkey = QString());
+ virtual QStringList localChildGroups(const QString &rootkey = QString());
+
+ virtual void setLocalValue(const QString &key, const QVariant &data);
+ virtual const QVariant &localValue(const QString &key, const QVariant &def = QVariant());
+
+ virtual void removeLocalKey(const QString &key);
+
+ QString group;
+
+private:
+ void setCacheValue(const QString &group, const QString &key, const QVariant &data);
+ const QVariant &cacheValue(const QString &group, const QString &key);
+ bool isCached(const QString &group, const QString &key);