-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 ClientBufferViewManager(signalProxy(), this);
- connect(bufferViewManager(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog()));
- connect(bufferViewManager(), SIGNAL(initDone()), this, SLOT(createDefaultBufferView()));
-
- createDefaultIdentity();
- createDefaultNetworks();
-
- _syncedToCore = true;
- emit connected();
- emit coreConnectionStateChanged(true);
-}
-
-void Client::requestInitialBacklog() {
- if(bufferViewManager()->isInitialized() && bufferSyncer()->isInitialized())
- Client::backlogManager()->requestInitialBacklog();
-}
-
-void Client::createDefaultBufferView() {
- if(bufferViewManager()->bufferViewConfigs().isEmpty()) {
- BufferViewConfig config(-1);
- config.setBufferViewName(tr("All Buffers"));
- config.initSetBufferList(networkModel()->allBufferIdsSorted());
- bufferViewManager()->requestCreateBufferView(config.toVariantMap());
- }
-}
-
-void Client::createDefaultIdentity() {
- if(_identities.isEmpty()) {
- Identity identity;
- identity.setToDefaults();
- identity.setIdentityName(tr("Default Identity"));
- createIdentity(identity);
- }
-}
-
-void Client::createDefaultNetworks() {
- if(_networks.isEmpty()) {
- QStringList defaultNets = Network::presetNetworks(true);
- foreach(QString net, defaultNets) {
- NetworkInfo info = Network::networkInfoFromPreset(net);
- if(info.networkName.isEmpty())
- continue;
- QStringList defaultChans = Network::presetDefaultChannels(net);
- createNetwork(info, defaultChans);