fixed the target buffers for queries
[quassel.git] / src / client / clientsettings.cpp
index 0a82306..2bf6412 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-07 by the Quassel IRC Team                         *
+ *   Copyright (C) 2005-08 by the Quassel Project                          *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
 #include <QStringList>
 
 ClientSettings::ClientSettings(QString g) : Settings(g, Global::clientApplicationName) {
-
-
 }
 
 ClientSettings::~ClientSettings() {
+}
 
+/***********************************************************************************************/
 
+CoreAccountSettings::CoreAccountSettings(const QString &subgroup) : ClientSettings("CoreAccounts") {
+  _subgroup = subgroup;
 }
 
-QStringList ClientSettings::sessionKeys() {
-  return Client::sessionDataKeys();
+QList<AccountId> CoreAccountSettings::knownAccounts() {
+  QList<AccountId> ids;
+  foreach(QString key, localChildGroups()) {
+    ids << key.toInt();
+  }
+  return ids;
 }
 
-void ClientSettings::setSessionValue(const QString &key, const QVariant &data) {
-  Client::storeSessionData(key, data);
+AccountId CoreAccountSettings::lastAccount() {
+  return localValue("LastAccount", 0).toInt();
 }
 
-QVariant ClientSettings::sessionValue(const QString &key, const QVariant &def) {
-  return Client::retrieveSessionData(key, def);
+void CoreAccountSettings::setLastAccount(AccountId account) {
+  setLocalValue("LastAccount", account.toInt());
 }
 
-/***********************************************************************************************/
-
-AccountSettings::AccountSettings() : ClientSettings("Accounts") {
-
-
+AccountId CoreAccountSettings::autoConnectAccount() {
+  return localValue("AutoConnectAccount", 0).toInt();
 }
 
-QStringList AccountSettings::knownAccounts() {
-  return localChildGroups();
+void CoreAccountSettings::setAutoConnectAccount(AccountId account) {
+  setLocalValue("AutoConnectAccount", account.toInt());
 }
 
-QString AccountSettings::lastAccount() {
-  return localValue("LastAccount", "").toString();
+void CoreAccountSettings::storeAccountData(AccountId id, const QVariantMap &data) {
+  setLocalValue(QString("%1/Connection").arg(id.toInt()), data);
 }
 
-void AccountSettings::setLastAccount(const QString &account) {
-  setLocalValue("LastAccount", account);
+QVariantMap CoreAccountSettings::retrieveAccountData(AccountId id) {
+  return localValue(QString("%1/Connection").arg(id.toInt()), QVariant()).toMap();
 }
 
-QString AccountSettings::autoConnectAccount() {
-  return localValue("AutoConnectAccount", "").toString();
+void CoreAccountSettings::setAccountValue(const QString &key, const QVariant &value) {
+  if(!Client::currentCoreAccount().isValid()) return;
+  setLocalValue(QString("%1/%2/%3").arg(Client::currentCoreAccount().toInt()).arg(_subgroup).arg(key), value);
 }
 
-void AccountSettings::setAutoConnectAccount(const QString &account) {
-  setLocalValue("AutoConnectAccount", account);
+QVariant CoreAccountSettings::accountValue(const QString &key, const QVariant &def) {
+  if(!Client::currentCoreAccount().isValid()) return QVariant();
+  return localValue(QString("%1/%2/%3").arg(Client::currentCoreAccount().toInt()).arg(_subgroup).arg(key), def);
 }
 
-void AccountSettings::setValue(const QString &account, const QString &key, const QVariant &data) {
-  setLocalValue(QString("%1/%2").arg(account).arg(key), data);
+void CoreAccountSettings::removeAccount(AccountId id) {
+  removeLocalKey(QString("%1").arg(id.toInt()));
 }
 
-QVariant AccountSettings::value(const QString &account, const QString &key, const QVariant &def) {
-  return localValue(QString("%1/%2").arg(account).arg(key), def);
-}
+/***********************************************************************************************/
 
-void AccountSettings::removeAccount(const QString &account) {
-  removeLocalKey(account);
+BufferSettings::BufferSettings(BufferId bufferId)
+  : CoreAccountSettings(QString("Buffers/%1").arg(bufferId.toInt()))
+{
 }
 
+void BufferSettings::setLastSeen(QDateTime seenDate) {
+  setAccountValue("LastSeen", seenDate);
+}
 
+QDateTime BufferSettings::lastSeen() {
+  return accountValue("LastSeen", QDateTime()).value<QDateTime>();
+}