1 /***************************************************************************
2 * Copyright (C) 2005-08 by the Quassel Project *
3 * devel@quassel-irc.org *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) version 3. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
21 #include <QStringList>
24 #include "clientsettings.h"
27 ClientSettings::ClientSettings(QString g) : Settings(g, Quassel::buildInfo().clientApplicationName) {
30 ClientSettings::~ClientSettings() {
33 /***********************************************************************************************/
35 CoreAccountSettings::CoreAccountSettings(const QString &subgroup)
36 : ClientSettings("CoreAccounts"),
41 void CoreAccountSettings::notify(const QString &key, QObject *receiver, const char *slot) {
42 ClientSettings::notify(QString("%1/%2/%3").arg(Client::currentCoreAccount().toInt()).arg(_subgroup).arg(key), receiver, slot);
45 QList<AccountId> CoreAccountSettings::knownAccounts() {
47 foreach(QString key, localChildGroups()) {
48 AccountId acc = key.toInt();
49 if(acc.isValid()) ids << acc;
54 AccountId CoreAccountSettings::lastAccount() {
55 return localValue("LastAccount", 0).toInt();
58 void CoreAccountSettings::setLastAccount(AccountId account) {
59 setLocalValue("LastAccount", account.toInt());
62 AccountId CoreAccountSettings::autoConnectAccount() {
63 return localValue("AutoConnectAccount", 0).toInt();
66 void CoreAccountSettings::setAutoConnectAccount(AccountId account) {
67 setLocalValue("AutoConnectAccount", account.toInt());
70 void CoreAccountSettings::storeAccountData(AccountId id, const QVariantMap &data) {
71 setLocalValue(QString("%1/Connection").arg(id.toInt()), data);
74 QVariantMap CoreAccountSettings::retrieveAccountData(AccountId id) {
75 return localValue(QString("%1/Connection").arg(id.toInt()), QVariant()).toMap();
78 void CoreAccountSettings::setAccountValue(const QString &key, const QVariant &value) {
79 if(!Client::currentCoreAccount().isValid()) return;
80 setLocalValue(QString("%1/%2/%3").arg(Client::currentCoreAccount().toInt()).arg(_subgroup).arg(key), value);
83 QVariant CoreAccountSettings::accountValue(const QString &key, const QVariant &def) {
84 if(!Client::currentCoreAccount().isValid()) return QVariant();
85 return localValue(QString("%1/%2/%3").arg(Client::currentCoreAccount().toInt()).arg(_subgroup).arg(key), def);
88 void CoreAccountSettings::setJumpKeyMap(const QHash<int, BufferId> &keyMap) {
90 QHash<int, BufferId>::const_iterator mapIter = keyMap.constBegin();
91 while(mapIter != keyMap.constEnd()) {
92 variants[QString::number(mapIter.key())] = qVariantFromValue(mapIter.value());
95 setLocalValue("JumpKeyMap", variants);
98 QHash<int, BufferId> CoreAccountSettings::jumpKeyMap() {
99 QHash<int, BufferId> keyMap;
100 QVariantMap variants = localValue("JumpKeyMap", QVariant()).toMap();
101 QVariantMap::const_iterator mapIter = variants.constBegin();
102 while(mapIter != variants.constEnd()) {
103 keyMap[mapIter.key().toInt()] = mapIter.value().value<BufferId>();
109 void CoreAccountSettings::removeAccount(AccountId id) {
110 removeLocalKey(QString("%1").arg(id.toInt()));
114 /***********************************************************************************************/
115 // NotificationSettings:
117 NotificationSettings::NotificationSettings() : ClientSettings("Notification") {
120 void NotificationSettings::setHighlightList(const QVariantList &highlightList) {
121 setLocalValue("Highlights/CustomList", highlightList);
124 QVariantList NotificationSettings::highlightList() {
125 return localValue("Highlights/CustomList").toList();
128 void NotificationSettings::setHighlightNick(NotificationSettings::HighlightNickType highlightNickType) {
129 setLocalValue("Highlights/HighlightNick", highlightNickType);
132 NotificationSettings::HighlightNickType NotificationSettings::highlightNick() {
133 return (NotificationSettings::HighlightNickType) localValue("Highlights/HighlightNick", CurrentNick).toInt();
136 void NotificationSettings::setNicksCaseSensitive(bool cs) {
137 setLocalValue("Highlights/NicksCaseSensitive", cs);
140 bool NotificationSettings::nicksCaseSensitive() {
141 return localValue("Highlights/NicksCaseSensitive", false).toBool();