Fix a potential crash
[quassel.git] / src / client / client.cpp
index e89f907..ca951da 100644 (file)
@@ -107,6 +107,7 @@ Client::Client(QObject *parent)
     _inputHandler(0),
     _networkConfig(0),
     _ignoreListManager(0),
+    _highlightRuleManager(0),
     _transferManager(0),
     _transferModel(new TransferModel(this)),
     _messageModel(0),
@@ -420,6 +421,11 @@ void Client::setSyncedToCore()
     _ignoreListManager = new ClientIgnoreListManager(this);
     p->synchronize(ignoreListManager());
 
+    // create Core-Side HighlightRuleManager
+    Q_ASSERT(!_highlightRuleManager);
+    _highlightRuleManager = new HighlightRuleManager(this);
+    p->synchronize(highlightRuleManager());
+
     // create TransferManager and DccConfig if core supports them
     Q_ASSERT(!_dccConfig);
     Q_ASSERT(!_transferManager);
@@ -508,6 +514,11 @@ void Client::setDisconnectedFromCore()
         _ignoreListManager = 0;
     }
 
+    if (_highlightRuleManager) {
+        _highlightRuleManager->deleteLater();
+        _highlightRuleManager = nullptr;
+    }
+
     if (_transferManager) {
         _transferModel->setManager(nullptr);
         _transferManager->deleteLater();