included qca2 into build system
[quassel.git] / src / client / coreconnection.cpp
index 460b3b7..8ad692e 100644 (file)
@@ -153,16 +153,16 @@ void CoreConnection::solidNetworkStatusChanged(Solid::Networking::Status status)
   switch(status) {
   case Solid::Networking::Unknown:
   case Solid::Networking::Connected:
-    qDebug() << "Solid: Network status changed to connected or unknown";
+    //qDebug() << "Solid: Network status changed to connected or unknown";
     if(state() == Disconnected) {
       if(_wantReconnect && s.autoReconnect()) {
         reconnectToCore();
       }
     }
     break;
+  case Solid::Networking::Disconnecting:
   case Solid::Networking::Unconnected:
-    qDebug() << "Solid: Disconnected";
-    if(!isLocalConnection())
+    if(state() != Disconnected && !isLocalConnection())
       disconnectFromCore(tr("Network is down"), true);
     break;
   default:
@@ -255,7 +255,7 @@ void CoreConnection::coreSocketError(QAbstractSocket::SocketError) {
 }
 
 void CoreConnection::coreSocketDisconnected() {
-  qDebug() << Q_FUNC_INFO;
+  // qDebug() << Q_FUNC_INFO;
   resetConnection(true);
   // FIXME handle disconnects gracefully
 }
@@ -474,6 +474,8 @@ void CoreConnection::clientInitAck(const QVariantMap &msg) {
     return;
   }
 
+  Client::setCoreFeatures((Quassel::Features)msg["CoreFeatures"].toUInt());
+
 #ifndef QT_NO_COMPRESS
   if(msg["SupportsCompression"].toBool()) {
     _socket->setProperty("UseCompression", true);
@@ -633,6 +635,9 @@ void CoreConnection::internalSessionStateReceived(const QVariant &packedState) {
 }
 
 void CoreConnection::syncToCore(const QVariantMap &sessionState) {
+  if(sessionState.contains("CoreFeatures"))
+    Client::setCoreFeatures((Quassel::Features)sessionState["CoreFeatures"].toUInt());
+
   setProgressText(tr("Receiving network states"));
   updateProgress(0, 100);