X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclientsettings.cpp;h=31200782f0f8e4f721aecac33182f6359ff4c503;hp=1fd1efbec2f77bdfb6f6281874a0314a00ff1807;hb=6d55e659fa87565462d7f3e92da594fdcf9708a2;hpb=28e33cd3255a838a045303bed073f4f9c40a3af4 diff --git a/src/client/clientsettings.cpp b/src/client/clientsettings.cpp index 1fd1efbe..31200782 100644 --- a/src/client/clientsettings.cpp +++ b/src/client/clientsettings.cpp @@ -18,74 +18,119 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ +#include + #include "client.h" #include "clientsettings.h" -#include "global.h" +#include "quassel.h" -#include +ClientSettings::ClientSettings(QString g) : Settings(g, Quassel::buildInfo().clientApplicationName) { +} -ClientSettings::ClientSettings(QString g) : Settings(g, Global::clientApplicationName) { +ClientSettings::~ClientSettings() { +} +/***********************************************************************************************/ +CoreAccountSettings::CoreAccountSettings(const QString &subgroup) : ClientSettings("CoreAccounts") { + _subgroup = subgroup; } -ClientSettings::~ClientSettings() { +QList CoreAccountSettings::knownAccounts() { + QList ids; + foreach(QString key, localChildGroups()) { + AccountId acc = key.toInt(); + if(acc.isValid()) ids << acc; + } + return ids; +} +AccountId CoreAccountSettings::lastAccount() { + return localValue("LastAccount", 0).toInt(); +} +void CoreAccountSettings::setLastAccount(AccountId account) { + setLocalValue("LastAccount", account.toInt()); } -/***********************************************************************************************/ +AccountId CoreAccountSettings::autoConnectAccount() { + return localValue("AutoConnectAccount", 0).toInt(); +} -CoreAccountSettings::CoreAccountSettings() : ClientSettings("CoreAccounts") { +void CoreAccountSettings::setAutoConnectAccount(AccountId account) { + setLocalValue("AutoConnectAccount", account.toInt()); +} +void CoreAccountSettings::storeAccountData(AccountId id, const QVariantMap &data) { + setLocalValue(QString("%1/Connection").arg(id.toInt()), data); +} +QVariantMap CoreAccountSettings::retrieveAccountData(AccountId id) { + return localValue(QString("%1/Connection").arg(id.toInt()), QVariant()).toMap(); } -QStringList CoreAccountSettings::knownAccounts() { - return localChildKeys("Accounts"); +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); } -QString CoreAccountSettings::lastAccount() { - return localValue("LastAccount", "").toString(); +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 CoreAccountSettings::setLastAccount(const QString &account) { - setLocalValue("LastAccount", account); +void CoreAccountSettings::setJumpKeyMap(const QHash &keyMap) { + QVariantMap variants; + QHash::const_iterator mapIter = keyMap.constBegin(); + while(mapIter != keyMap.constEnd()) { + variants[QString::number(mapIter.key())] = qVariantFromValue(mapIter.value()); + mapIter++; + } + setLocalValue("JumpKeyMap", variants); } -QString CoreAccountSettings::autoConnectAccount() { - return localValue("AutoConnectAccount", "").toString(); +QHash CoreAccountSettings::jumpKeyMap() { + QHash keyMap; + QVariantMap variants = localValue("JumpKeyMap", QVariant()).toMap(); + QVariantMap::const_iterator mapIter = variants.constBegin(); + while(mapIter != variants.constEnd()) { + keyMap[mapIter.key().toInt()] = mapIter.value().value(); + mapIter++; + } + return keyMap; } -void CoreAccountSettings::setAutoConnectAccount(const QString &account) { - setLocalValue("AutoConnectAccount", account); +void CoreAccountSettings::removeAccount(AccountId id) { + removeLocalKey(QString("%1").arg(id.toInt())); } -void CoreAccountSettings::storeAccount(const QString name, const QVariantMap &data) { - setLocalValue(QString("Accounts/%2").arg(name), data); + +/***********************************************************************************************/ +// NotificationSettings: + +NotificationSettings::NotificationSettings() : ClientSettings("Notification") { } -QVariantMap CoreAccountSettings::retrieveAccount(const QString &name) { - return localValue(QString("Accounts/%2").arg(name), QVariant()).toMap(); +void NotificationSettings::setHighlightList(const QVariantList &highlightList) { + setLocalValue("highlightList", highlightList); } -void CoreAccountSettings::storeAllAccounts(const QHash accounts) { - removeLocalKey(QString("Accounts")); - foreach(QString name, accounts.keys()) { - storeAccount(name, accounts[name]); - } +QVariantList NotificationSettings::highlightList() { + return localValue("highlightList").toList(); } -QHash CoreAccountSettings::retrieveAllAccounts() { - QHash accounts; - foreach(QString name, knownAccounts()) { - accounts[name] = retrieveAccount(name); - } - return accounts; +void NotificationSettings::setHighlightNick(NotificationSettings::HighlightNickType highlightNickType) { + setLocalValue("highlightNick", highlightNickType); } -void CoreAccountSettings::removeAccount(const QString &account) { - removeLocalKey(QString("Accounts/%1").arg(account)); +NotificationSettings::HighlightNickType NotificationSettings::highlightNick() { + return (NotificationSettings::HighlightNickType) localValue("highlightNick", CurrentNick).toInt(); } +void NotificationSettings::setNicksCaseSensitive(bool cs) { + setLocalValue("Highlights/NicksCaseSensitive", cs); +} +bool NotificationSettings::nicksCaseSensitive() { + return localValue("Highlights/NicksCaseSensitive", true).toBool(); +}