- IrcChannel *chan = net->ircChannel(bufferInfo.bufferName());
- if(chan) {
- qWarning() << "CoreBufferSyncer::removeBuffer(): Unable to remove Buffer for joined Channel:" << bufferInfo.bufferName();
- return;
+
+ dirtyLastSeenBuffers.clear();
+ dirtyMarkerLineBuffers.clear();
+}
+
+
+void CoreBufferSyncer::removeBuffer(BufferId bufferId)
+{
+ BufferInfo bufferInfo = Core::getBufferInfo(_coreSession->user(), bufferId);
+ if (!bufferInfo.isValid()) {
+ qWarning() << "CoreBufferSyncer::removeBuffer(): invalid BufferId:" << bufferId << "for User:" << _coreSession->user();
+ return;
+ }
+
+ if (bufferInfo.type() == BufferInfo::StatusBuffer) {
+ qWarning() << "CoreBufferSyncer::removeBuffer(): Status Buffers cannot be removed!";
+ return;
+ }
+
+ if (bufferInfo.type() == BufferInfo::ChannelBuffer) {
+ CoreNetwork *net = _coreSession->network(bufferInfo.networkId());
+ if (!net) {
+ qWarning() << "CoreBufferSyncer::removeBuffer(): Received BufferInfo with unknown networkId!";
+ return;
+ }
+ IrcChannel *chan = net->ircChannel(bufferInfo.bufferName());
+ if (chan) {
+ qWarning() << "CoreBufferSyncer::removeBuffer(): Unable to remove Buffer for joined Channel:" << bufferInfo.bufferName();
+ return;
+ }