introducing autocached settings
[quassel.git] / src / client / clientsettings.cpp
index 7cccac6..3a1dbd8 100644 (file)
@@ -39,7 +39,8 @@ CoreAccountSettings::CoreAccountSettings(const QString &subgroup) : ClientSettin
 QList<AccountId> CoreAccountSettings::knownAccounts() {
   QList<AccountId> ids;
   foreach(QString key, localChildGroups()) {
-    ids << key.toInt();
+    AccountId acc = key.toInt();
+    if(acc.isValid()) ids << acc;
   }
   return ids;
 }
@@ -98,26 +99,30 @@ QHash<int, BufferId> CoreAccountSettings::jumpKeyMap() {
   }
   return keyMap;
 }
-  
 
 void CoreAccountSettings::removeAccount(AccountId id) {
   removeLocalKey(QString("%1").arg(id.toInt()));
 }
 
+
 /***********************************************************************************************/
+// NotificationSettings:
 
-BufferSettings::BufferSettings(BufferId bufferId)
-  : CoreAccountSettings(QString("Buffers/%1").arg(bufferId.toInt()))
-{
+NotificationSettings::NotificationSettings() : ClientSettings("Notification") {
 }
 
-void BufferSettings::setLastSeen(QDateTime seenDate) {
-  setAccountValue("LastSeen", seenDate);
+void NotificationSettings::setHighlightList(const QVariantList &highlightList) {
+  setLocalValue("highlightList", highlightList);
 }
 
-QDateTime BufferSettings::lastSeen() {
-  return accountValue("LastSeen", QDateTime()).value<QDateTime>();
+QVariantList NotificationSettings::highlightList() {
+  return localValue("highlightList").toList();
 }
 
-/***********************************************************************************************/
+void NotificationSettings::setHighlightNick(NotificationSettings::HighlightNickType highlightNickType) {
+  setLocalValue("highlightNick", highlightNickType);
+}
 
+NotificationSettings::HighlightNickType NotificationSettings::highlightNick() {
+  return (NotificationSettings::HighlightNickType) localValue("highlightNick", CurrentNick).toInt();
+}