Introduce CoreAccount and CoreAccountModel
[quassel.git] / src / client / client.cpp
index e6f7f05..2f308b9 100644 (file)
@@ -33,7 +33,9 @@
 #include "clientbufferviewmanager.h"
 #include "clientirclisthelper.h"
 #include "clientidentity.h"
+#include "clientignorelistmanager.h"
 #include "clientuserinputhandler.h"
+#include "coreaccountmodel.h"
 #include "ircchannel.h"
 #include "ircuser.h"
 #include "message.h"
@@ -91,8 +93,10 @@ Client::Client(QObject *parent)
     _ircListHelper(new ClientIrcListHelper(this)),
     _inputHandler(0),
     _networkConfig(0),
+    _ignoreListManager(0),
     _messageModel(0),
     _messageProcessor(0),
+    _coreAccountModel(new CoreAccountModel(this)),
     _connectedToCore(false),
     _syncedToCore(false),
     _internalCore(false),
@@ -116,6 +120,7 @@ void Client::init() {
   _messageModel = mainUi()->createMessageModel(this);
   _messageProcessor = mainUi()->createMessageProcessor(this);
   _inputHandler = new ClientUserInputHandler(this);
+  _coreAccountModel->load();
 
   SignalProxy *p = signalProxy();
 
@@ -158,7 +163,7 @@ AccountId Client::currentCoreAccount() {
   return _currentCoreAccount;
 }
 
-void Client::setCurrentCoreAccount(AccountId id) {
+void Client::setCurrentCoreAccount(const AccountId &id) {
   _currentCoreAccount = id;
 }
 
@@ -336,6 +341,11 @@ void Client::setSyncedToCore() {
   _networkConfig = new NetworkConfig("GlobalNetworkConfig", this);
   signalProxy()->synchronize(networkConfig());
 
+  // create IgnoreListManager
+  Q_ASSERT(!_ignoreListManager);
+  _ignoreListManager = new ClientIgnoreListManager(this);
+  signalProxy()->synchronize(ignoreListManager());
+
   // trigger backlog request once all active bufferviews are initialized
   connect(bufferViewOverlay(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog()));
 
@@ -399,6 +409,10 @@ void Client::disconnectedFromCore() {
     _aliasManager = 0;
   }
 
+  if(_ignoreListManager) {
+    _ignoreListManager->deleteLater();
+    _ignoreListManager = 0;
+  }
   // we probably don't want to save pending input for reconnect
   _userInputBuffer.clear();
 
@@ -532,4 +546,3 @@ void Client::logMessage(QtMsgType type, const char *msg) {
     emit instance()->logUpdated(msgString);
   }
 }
-