Buffer activity levels are now synced between clients, meaning that seeing a buffer...
[quassel.git] / src / client / clientsyncer.cpp
index b8cf4b2..601bff0 100644 (file)
@@ -59,6 +59,10 @@ void ClientSyncer::coreHasData() {
       emit connectionError(msg["Error"].toString());
       disconnectFromCore();
       return;
+    } else if(msg["MsgType"] == "CoreSetupAck") {
+      emit coreSetupSuccess();
+    } else if(msg["MsgType"] == "CoreSetupReject") {
+      emit coreSetupFailed(msg["Error"].toString());
     } else if(msg["MsgType"] == "ClientLoginReject") {
       emit loginFailed(msg["Error"].toString());
     } else if(msg["MsgType"] == "ClientLoginAck") {
@@ -168,16 +172,26 @@ void ClientSyncer::clientInitAck(const QVariantMap &msg) {
   // Core has accepted our version info and sent its own. Let's see if we accept it as well...
   if(msg["CoreBuild"].toUInt() < Global::coreBuildNeeded) {
     emit connectionError(tr("<b>The Quassel Core you are trying to connect to is too old!</b><br>"
-        "Need at least a Core Version %1 (Build >= %2) to connect.").arg(Global::quasselVersion).arg(Global::quasselBuild));
+        "Need at least a Core Version %1 (Build >= %2) to connect.").arg(Global::quasselVersion).arg(Global::coreBuildNeeded));
     disconnectFromCore();
     return;
   }
   emit connectionMsg(msg["CoreInfo"].toString());
-  if(msg["LoginEnabled"].toBool()) {
+  if(!msg["Configured"].toBool()) {
+    // start wizard
+    emit startCoreSetup(msg["StorageBackends"].toList());
+  } else if(msg["LoginEnabled"].toBool()) {
     emit startLogin();
   }
 }
 
+void ClientSyncer::doCoreSetup(const QVariant &setupData) {
+  QVariantMap setup;
+  setup["MsgType"] = "CoreSetupData";
+  setup["SetupData"] = setupData;
+  SignalProxy::writeDataToDevice(socket, setup);
+}
+
 void ClientSyncer::loginToCore(const QString &user, const QString &passwd) {
   emit connectionMsg(tr("Logging in..."));
   QVariantMap clientLogin;