The Networksettings are now stored purely in the Database.
[quassel.git] / src / core / coresession.cpp
index 02cc668..33aeae8 100644 (file)
@@ -128,38 +128,21 @@ void CoreSession::loadSettings() {
     createIdentity(i);
   }
 
-  // FIXME switch to a pure DB storage
-  foreach(NetworkId id, s.networkIds()) {
-    NetworkInfo info = s.networkInfo(id);
-    createNetwork(info);
-  }
 
-  // FIXME Migrate old settings if available...
-  if(!_networks.count()) {
-    QVariantMap networks = s.sessionValue("Networks").toMap();
-    if(networks.keys().count()) {
-      qWarning() << "Migrating your old network settings to the new format!";
-      foreach(QString netname, networks.keys()) {
-        QVariantMap network = networks[netname].toMap();
-        NetworkId netid = Core::networkId(user(), netname);
-        NetworkInfo info;
-        info.networkId = netid;
-        info.networkName = netname;
-        info.identity = 1;
-        info.codecForEncoding = "ISO-8859-15";
-        info.codecForDecoding = "ISO-8859-15";
-        QVariantList slist;
-        foreach(QVariant v, network["Servers"].toList()) {
-          QVariantMap server;
-          server["Host"] = v.toMap()["Address"];
-          server["Port"] = v.toMap()["Port"];
-          slist << server;
-        }
-        info.serverList = slist;
-        createNetwork(info);
-      }
+  // migration to pure DB storage
+  QList<NetworkId> netIds = s.networkIds();
+  if(!netIds.isEmpty()) {
+    qDebug() << "Migrating Networksettings to DB Storage for User:" << user();
+    foreach(NetworkId id, netIds) {
+      NetworkInfo info = s.networkInfo(id);
+      Core::updateNetwork(user(), info);
+      s.removeNetworkInfo(id);
     }
   }
+
+  foreach(NetworkInfo info, Core::networks(user())) {
+    createNetwork(info);
+  }
 }
 
 void CoreSession::saveSessionState() const {
@@ -281,7 +264,7 @@ void CoreSession::networkDisconnected(NetworkId networkid) {
 void CoreSession::msgFromClient(BufferInfo bufinfo, QString msg) {
   NetworkConnection *conn = networkConnection(bufinfo.networkId());
   if(conn) {
-    conn->userInput(bufinfo.buffer(), msg);
+    conn->userInput(bufinfo.bufferName(), msg);
   } else {
     qWarning() << "Trying to send to unconnected network!";
   }
@@ -292,14 +275,8 @@ void CoreSession::msgFromClient(BufferInfo bufinfo, QString msg) {
 void CoreSession::recvMessageFromServer(Message::Type type, QString target, QString text, QString sender, quint8 flags) {
   NetworkConnection *netCon = qobject_cast<NetworkConnection*>(this->sender());
   Q_ASSERT(netCon);
-
-  QString bufferName;
-  if((flags & Message::PrivMsg) && !(flags & Message::Self))
-    bufferName = nickFromMask(sender);
-  else
-    bufferName = target;
-
-  BufferInfo bufferInfo = Core::bufferInfo(user(), netCon->networkId(), bufferName);
+  
+  BufferInfo bufferInfo = Core::bufferInfo(user(), netCon->networkId(), target);
   Message msg(bufferInfo, type, text, sender, flags);
   msg.setMsgId(Core::storeMessage(msg));
   Q_ASSERT(msg.msgId() != 0);
@@ -425,7 +402,7 @@ void CoreSession::createNetwork(const NetworkInfo &info_) {
   int id;
 
   if(!info.networkId.isValid())
-    Core::createNetworkId(user(), info);
+    Core::createNetwork(user(), info);
 
   Q_ASSERT(info.networkId.isValid());
 
@@ -439,8 +416,6 @@ void CoreSession::createNetwork(const NetworkInfo &info_) {
   net->setProxy(signalProxy());
   _networks[id] = net;
   signalProxy()->synchronize(net);
-  CoreUserSettings s(user());
-  s.storeNetworkInfo(info);
   emit networkCreated(id);
 }
 
@@ -450,16 +425,13 @@ void CoreSession::updateNetwork(const NetworkInfo &info) {
     return;
   }
   _networks[info.networkId]->setNetworkInfo(info);
-  CoreUserSettings s(user());
-  s.storeNetworkInfo(info);
+  Core::updateNetwork(user(), info);
 }
 
 void CoreSession::removeNetwork(NetworkId id) {
   Network *net = _networks.take(id);
-  if(net) {
+  if(net && Core::removeNetwork(user(), id)) {
     emit networkRemoved(id);
-    CoreUserSettings s(user());
-    s.removeNetworkInfo(id);
     net->deleteLater();
   }
 }