+
+QVariant CoreAccountSettings::accountValue(const QString &key, const QVariant &def)
+{
+ if (!Client::currentCoreAccount().isValid())
+ return QVariant();
+ return localValue(QString("%1/%2/%3").arg(Client::currentCoreAccount().accountId().toInt()).arg(_subgroup).arg(key), def);
+}
+
+
+void CoreAccountSettings::setJumpKeyMap(const QHash<int, BufferId> &keyMap)
+{
+ QVariantMap variants;
+ QHash<int, BufferId>::const_iterator mapIter = keyMap.constBegin();
+ while (mapIter != keyMap.constEnd()) {
+ variants[QString::number(mapIter.key())] = qVariantFromValue(mapIter.value());
+ ++mapIter;
+ }
+ setAccountValue("JumpKeyMap", variants);
+}
+
+
+QHash<int, BufferId> CoreAccountSettings::jumpKeyMap()
+{
+ QHash<int, BufferId> keyMap;
+ QVariantMap variants = accountValue("JumpKeyMap", QVariant()).toMap();
+ QVariantMap::const_iterator mapIter = variants.constBegin();
+ while (mapIter != variants.constEnd()) {
+ keyMap[mapIter.key().toInt()] = mapIter.value().value<BufferId>();
+ ++mapIter;
+ }
+ return keyMap;
+}
+
+
+void CoreAccountSettings::setBufferViewOverlay(const QSet<int> &viewIds)
+{
+ QVariantList variants;
+ foreach(int viewId, viewIds) {
+ variants << qVariantFromValue(viewId);
+ }
+ setAccountValue("BufferViewOverlay", variants);
+}
+
+
+QSet<int> CoreAccountSettings::bufferViewOverlay()
+{
+ QSet<int> viewIds;
+ QVariantList variants = accountValue("BufferViewOverlay").toList();
+ for (QVariantList::const_iterator iter = variants.constBegin(); iter != variants.constEnd(); iter++) {
+ viewIds << iter->toInt();
+ }
+ return viewIds;
+}
+
+
+void CoreAccountSettings::removeAccount(AccountId id)
+{
+ removeLocalKey(QString("%1").arg(id.toInt()));
+}
+
+
+void CoreAccountSettings::clearAccounts()
+{
+ foreach(const QString &key, localChildGroups())
+ removeLocalKey(key);