/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-09 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include <QSettings>
#include <QStringList>
-#include <QDebug>
#ifdef Q_WS_QWS
#include <Qtopia>
#include "settings.h"
QHash<QString, QHash<QString, QVariant> > Settings::settingsCache;
+QHash<QString, QHash<QString, SettingsChangeNotifier *> > Settings::settingsChangeNotifier;
// Settings::Settings(QString group_, QString appName_)
// : group(group_),
// */
// }
+void Settings::notify(const QString &key, QObject *receiver, const char *slot) {
+ QObject::connect(notifier(group, key), SIGNAL(valueChanged(const QVariant &)),
+ receiver, slot);
+}
+
QStringList Settings::allLocalKeys() {
QSettings s(org(), appName);
s.beginGroup(group);
s.setValue(key, data);
s.endGroup();
setCacheValue(group, key, data);
+ if(hasNotifier(group, key)) {
+ emit notifier(group, key)->valueChanged(data);
+ }
}
const QVariant &Settings::localValue(const QString &key, const QVariant &def) {
if(isCached(group, key))
settingsCache[group].remove(key);
}
-
-
-// void Settings::setCacheValue(const QString &group, const QString &key, const QVariant &data) {
-// settingsCache[group][key] = data;
-// }
-
-// const QVariant &Settings::cacheValue(const QString &group, const QString &key) {
-// return settingsCache[group][key];
-// }
-
-// bool Settings::isCached(const QString &group, const QString &key) {
-// return settingsCache.contains(group) && settingsCache[group].contains(key);
-// }