common: Represent core/client features as string list in the protocol
[quassel.git] / src / client / client.cpp
index dd20ca0..d6dc3d1 100644 (file)
@@ -56,7 +56,6 @@
 #include <stdlib.h>
 
 QPointer<Client> Client::instanceptr = 0;
-Quassel::Features Client::_coreFeatures = 0;
 
 /*** Initialization/destruction ***/
 
@@ -188,9 +187,9 @@ AbstractUi *Client::mainUi()
 }
 
 
-void Client::setCoreFeatures(Quassel::Features features)
+bool Client::isCoreFeatureEnabled(Quassel::Feature feature)
 {
-    _coreFeatures = features;
+    return coreConnection()->peer() ? coreConnection()->peer()->hasFeature(feature) : false;
 }
 
 
@@ -430,7 +429,7 @@ void Client::setSyncedToCore()
     // create TransferManager and DccConfig if core supports them
     Q_ASSERT(!_dccConfig);
     Q_ASSERT(!_transferManager);
-    if (coreFeatures() & Quassel::DccFileTransfer) {
+    if (isCoreFeatureEnabled(Quassel::Feature::DccFileTransfer)) {
         _dccConfig = new DccConfig(this);
         p->synchronize(dccConfig());
         _transferManager = new ClientTransferManager(this);
@@ -461,7 +460,7 @@ void Client::finishConnectionInitialization()
     disconnect(bufferSyncer(), SIGNAL(initDone()), this, SLOT(finishConnectionInitialization()));
 
     requestInitialBacklog();
-    if (coreFeatures().testFlag(Quassel::BufferActivitySync))
+    if (isCoreFeatureEnabled(Quassel::Feature::BufferActivitySync))
         bufferSyncer()->markActivitiesChanged();
 }
 
@@ -484,7 +483,6 @@ void Client::disconnectFromCore()
 void Client::setDisconnectedFromCore()
 {
     _connected = false;
-    _coreFeatures = 0;
 
     emit disconnected();
     emit coreConnectionStateChanged(false);