made keybindings persistent (per client)
[quassel.git] / src / client / clientsettings.cpp
index 2bf6412..7cccac6 100644 (file)
@@ -78,6 +78,28 @@ QVariant CoreAccountSettings::accountValue(const QString &key, const QVariant &d
   return localValue(QString("%1/%2/%3").arg(Client::currentCoreAccount().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++;
+  }
+  setLocalValue("JumpKeyMap", variants);
+}
+
+QHash<int, BufferId> CoreAccountSettings::jumpKeyMap() {
+  QHash<int, BufferId> keyMap;
+  QVariantMap variants = localValue("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::removeAccount(AccountId id) {
   removeLocalKey(QString("%1").arg(id.toInt()));
 }
@@ -96,3 +118,6 @@ void BufferSettings::setLastSeen(QDateTime seenDate) {
 QDateTime BufferSettings::lastSeen() {
   return accountValue("LastSeen", QDateTime()).value<QDateTime>();
 }
+
+/***********************************************************************************************/
+