X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=21beda08313606669f038501b51b98e98e486c03;hb=84381d6b74a31c8b1b6468fa490621f8a7a32c23;hp=c5d4e50c7d1920b4bc335b6cfe42a2490957b4c6;hpb=7582ce11d6fb8b5123f7ac4794c57e981a634e93;p=quassel.git diff --git a/src/client/client.cpp b/src/client/client.cpp index c5d4e50c..21beda08 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -322,13 +322,13 @@ void Client::setSyncedToCore() { 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(bufferMarkedAsRead(BufferId)), SIGNAL(bufferMarkedAsRead(BufferId))); - connect(networkModel(), SIGNAL(setLastSeenMsg(BufferId, MsgId)), bufferSyncer(), SLOT(requestSetLastSeenMsg(BufferId, const MsgId &))); + connect(networkModel(), SIGNAL(requestSetLastSeenMsg(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(createDefaultBufferView())); + connect(_bufferViewManager, SIGNAL(initDone()), _bufferViewOverlay, SLOT(restore())); // create AliasManager Q_ASSERT(!_aliasManager); @@ -359,20 +359,14 @@ void Client::requestInitialBacklog() { // triggers this slot. But we have to make sure that we know all buffers yet. // so we check the BufferSyncer and in case it wasn't initialized we wait for that instead if(!bufferSyncer()->isInitialized()) { - connect(bufferViewOverlay(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog())); + disconnect(bufferViewOverlay(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog())); connect(bufferSyncer(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog())); return; } - _backlogManager->requestInitialBacklog(); -} + disconnect(bufferViewOverlay(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog())); + disconnect(bufferSyncer(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog())); -void Client::createDefaultBufferView() { - if(bufferViewManager()->bufferViewConfigs().isEmpty()) { - BufferViewConfig config(-1); - config.setBufferViewName(tr("All Chats")); - config.initSetBufferList(networkModel()->allBufferIdsSorted()); - bufferViewManager()->requestCreateBufferView(config.toVariantMap()); - } + _backlogManager->requestInitialBacklog(); } void Client::disconnectFromCore() { @@ -404,6 +398,8 @@ void Client::setDisconnectedFromCore() { _bufferViewManager = 0; } + _bufferViewOverlay->reset(); + if(_aliasManager) { _aliasManager->deleteLater(); _aliasManager = 0; @@ -474,11 +470,17 @@ void Client::setBufferLastSeenMsg(BufferId id, const MsgId &msgId) { bufferSyncer()->requestSetLastSeenMsg(id, msgId); } -void Client::setBufferMarkerLine(BufferId id, const MsgId &msgId) { +void Client::setMarkerLine(BufferId id, const MsgId &msgId) { if(bufferSyncer()) bufferSyncer()->requestSetMarkerLine(id, msgId); } +MsgId Client::markerLine(BufferId id) { + if(id.isValid() && networkModel()) + return networkModel()->markerLineMsgId(id); + return MsgId(); +} + void Client::removeBuffer(BufferId id) { if(!bufferSyncer()) return; bufferSyncer()->requestRemoveBuffer(id); @@ -534,7 +536,7 @@ void Client::buffersPermanentlyMerged(BufferId bufferId1, BufferId bufferId2) { } void Client::markBufferAsRead(BufferId id) { - if(id.isValid()) + if(bufferSyncer() && id.isValid()) bufferSyncer()->requestMarkBufferAsRead(id); }