X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclientsettings.cpp;h=2bf6412b2c9de7593de1f0aaa666a0c17a9a27e9;hp=0a823068849f3765df95a65db1654aaea35a9946;hb=a643fb463875bb3e516bcf6d61948f764bcb48f3;hpb=cf28e7152c5d940aec586be1b29fbf8ddc99f087 diff --git a/src/client/clientsettings.cpp b/src/client/clientsettings.cpp index 0a823068..2bf6412b 100644 --- a/src/client/clientsettings.cpp +++ b/src/client/clientsettings.cpp @@ -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 * @@ -25,64 +25,74 @@ #include 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 CoreAccountSettings::knownAccounts() { + QList 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(); +}