1/***************************************************************************
2 * Copyright (C) 2005-2014 by the Quassel Project *
3 * devel@quassel-irc.org *
4 * *
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. *
9 * *
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. *
14 * *
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 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
19 ***************************************************************************/
20
21#include "coreusersettings.h"
22
23CoreUserSettings::CoreUserSettings(UserId uid) : CoreSettings(QString("CoreUser/%1").arg(uid.toInt())), user(uid)
24{
25}
26
27
28Identity CoreUserSettings::identity(IdentityId id)
29{
30 QVariant v = localValue(QString("Identities/%1").arg(id.toInt()));
31 if (v.canConvert<Identity>()) {
32 return v.value<Identity>();
33 }
34 return Identity();
35}
36
37
38QList<IdentityId> CoreUserSettings::identityIds()
39{
40 QList<IdentityId> res;
41 foreach(QString id, localChildKeys("Identities")) {
42 res << id.toInt();
43 }
44 return res;
45}
46
47
48void CoreUserSettings::storeIdentity(const Identity &identity)
49{
50 setLocalValue(QString("Identities/%1").arg(identity.id().toInt()), qVariantFromValue(identity));
51}
52
53
54void CoreUserSettings::removeIdentity(IdentityId id)
55{
56 removeLocalKey(QString("Identities/%1").arg(id.toInt()));
57}
58
59
60void CoreUserSettings::setSessionState(const QVariant &data)
61{
62 setLocalValue("SessionState", data);
63}
64
65
66QVariant CoreUserSettings::sessionState(const QVariant &def)
67{
68 return localValue("SessionState", def);
69}
70
71
72QVariantMap CoreUserSettings::sessionData()
73{
74 QVariantMap res;
75 foreach(QString key, localChildKeys(QString("SessionData"))) {
76 res[key] = localValue(QString("SessionData/%1").arg(key));
77 }
78 return res;
79}
80
81
82void CoreUserSettings::setSessionValue(const QString &key, const QVariant &data)
83{
84 setLocalValue(QString("SessionData/%1").arg(key), data);
85}
86
87
88QVariant CoreUserSettings::sessionValue(const QString &key, const QVariant &def)
89{
90 return localValue(QString("SessionData/%1").arg(key), def);
91}
92