+void Client::setConnectedToCore(AccountId id, QIODevice *socket) {
+ if(socket) { // external core
+ // if the socket is an orphan, the signalProxy adopts it.
+ // -> we don't need to care about it anymore
+ socket->setParent(0);
+ signalProxy()->addPeer(socket);
+ }
+ _internalCore = !socket;
+ _connectedToCore = true;
+ setCurrentCoreAccount(id);
+}
+
+void Client::setSyncedToCore() {
+ // create buffersyncer
+ Q_ASSERT(!_bufferSyncer);
+ _bufferSyncer = new BufferSyncer(this);
+ connect(bufferSyncer(), SIGNAL(lastSeenMsgSet(BufferId, MsgId)), _networkModel, SLOT(setLastSeenMsgId(BufferId, MsgId)));
+ connect(bufferSyncer(), SIGNAL(bufferRemoved(BufferId)), this, SLOT(bufferRemoved(BufferId)));
+ connect(bufferSyncer(), SIGNAL(bufferRenamed(BufferId, QString)), this, SLOT(bufferRenamed(BufferId, QString)));
+ connect(bufferSyncer(), SIGNAL(buffersPermanentlyMerged(BufferId, BufferId)), this, SLOT(buffersPermanentlyMerged(BufferId, BufferId)));
+ connect(bufferSyncer(), SIGNAL(buffersPermanentlyMerged(BufferId, BufferId)), _messageModel, SLOT(buffersPermanentlyMerged(BufferId, BufferId)));
+ connect(bufferSyncer(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog()));
+ connect(networkModel(), SIGNAL(setLastSeenMsg(BufferId, MsgId)), bufferSyncer(), SLOT(requestSetLastSeenMsg(BufferId, const MsgId &)));
+ signalProxy()->synchronize(bufferSyncer());
+
+ // create a new BufferViewManager
+ Q_ASSERT(!_bufferViewManager);
+ _bufferViewManager = new BufferViewManager(signalProxy(), this);
+ connect(bufferViewManager(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog()));
+ connect(bufferViewManager(), SIGNAL(initDone()), this, SLOT(createDefautBufferView()));
+ _syncedToCore = true;
+ emit connected();
+ emit coreConnectionStateChanged(true);
+}
+
+void Client::requestInitialBacklog() {
+ if(bufferViewManager()->isInitialized() && bufferSyncer()->isInitialized())
+ Client::backlogManager()->requestInitialBacklog();
+}
+
+void Client::createDefautBufferView() {
+ if(bufferViewManager()->bufferViewConfigs().isEmpty()) {
+ BufferViewConfig config(-1);
+ config.setBufferViewName(tr("All Buffers"));
+ bufferViewManager()->requestCreateBufferView(config.toVariantMap());
+ }