X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fbufferviewconfig.cpp;fp=src%2Fcommon%2Fbufferviewconfig.cpp;h=88c9dc0e3431008e43c6bd732c86185184431e57;hb=a1bcca1c86e88406a0c5495b08731e6b11dd987e;hp=1affaba7bee6a8661508ef933863985e2ed709ac;hpb=c79539bee8761bcabe057d8d72594d16da24528f;p=quassel.git diff --git a/src/common/bufferviewconfig.cpp b/src/common/bufferviewconfig.cpp index 1affaba7..88c9dc0e 100644 --- a/src/common/bufferviewconfig.cpp +++ b/src/common/bufferviewconfig.cpp @@ -115,6 +115,7 @@ void BufferViewConfig::initSetBufferList(const QVariantList &buffers) { _buffers << buffer.value(); } + // normaly initSeters don't need an emit. this one is to track changes in the settingspage emit bufferListSet(); } @@ -125,9 +126,28 @@ void BufferViewConfig::initSetBufferList(const QList &buffers) { _buffers << bufferId; } + // normaly initSeters don't need an emit. this one is to track changes in the settingspage emit bufferListSet(); } +QVariantList BufferViewConfig::initRemovedBuffersList() const { + QVariantList removedBuffers; + + foreach(BufferId bufferId, _removedBuffers) { + removedBuffers << qVariantFromValue(bufferId); + } + + return removedBuffers; +} + +void BufferViewConfig::initSetRemovedBuffersList(const QVariantList &buffers) { + _removedBuffers.clear(); + + foreach(QVariant buffer, buffers) { + _removedBuffers << buffer.value(); + } +} + void BufferViewConfig::addBuffer(const BufferId &bufferId, int pos) { if(_buffers.contains(bufferId)) return; @@ -136,6 +156,9 @@ void BufferViewConfig::addBuffer(const BufferId &bufferId, int pos) { pos = 0; if(pos > _buffers.count()) pos = _buffers.count(); + + if(_removedBuffers.contains(bufferId)) + _removedBuffers.remove(bufferId); _buffers.insert(pos, bufferId); emit bufferAdded(bufferId, pos); @@ -161,3 +184,12 @@ void BufferViewConfig::removeBuffer(const BufferId &bufferId) { _buffers.removeAt(_buffers.indexOf(bufferId)); emit bufferRemoved(bufferId); } + +void BufferViewConfig::removeBufferPermanently(const BufferId &bufferId) { + if(_buffers.contains(bufferId)) + _buffers.removeAt(_buffers.indexOf(bufferId)); + + _removedBuffers << bufferId; + + emit bufferPermanentlyRemoved(bufferId); +}