X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fbufferviewconfig.cpp;h=0ec0348ba4c8d8f63471239446a22aa8a33a998d;hp=2ffb3a7ac30631b45e8c467eff1b7ffb1989a1b1;hb=1e8ee5e5467db6fe9795f6a6e806e310bf07ef9d;hpb=f2e4609f070221a010eef8be98524c5ce88d228b diff --git a/src/common/bufferviewconfig.cpp b/src/common/bufferviewconfig.cpp index 2ffb3a7a..0ec0348b 100644 --- a/src/common/bufferviewconfig.cpp +++ b/src/common/bufferviewconfig.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel Project * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -28,6 +28,7 @@ BufferViewConfig::BufferViewConfig(int bufferViewId, QObject *parent) _addNewBuffersAutomatically(true), _sortAlphabetically(true), _hideInactiveBuffers(false), + _disableDecoration(false), _allowedBufferTypes(BufferInfo::StatusBuffer | BufferInfo::ChannelBuffer | BufferInfo::QueryBuffer | BufferInfo::GroupBuffer), _minimumActivity(0) { @@ -74,6 +75,14 @@ void BufferViewConfig::setSortAlphabetically(bool sortAlphabetically) { emit sortAlphabeticallySet(sortAlphabetically); } +void BufferViewConfig::setDisableDecoration(bool disableDecoration) { + if(_disableDecoration == disableDecoration) + return; + + _disableDecoration = disableDecoration; + emit disableDecorationSet(disableDecoration); +} + void BufferViewConfig::setAllowedBufferTypes(int bufferTypes) { if(_allowedBufferTypes == bufferTypes) return; @@ -115,6 +124,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,33 +135,98 @@ 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::initRemovedBuffers() const { + QVariantList removedBuffers; + + foreach(BufferId bufferId, _removedBuffers) { + removedBuffers << qVariantFromValue(bufferId); + } + + return removedBuffers; +} + +void BufferViewConfig::initSetRemovedBuffers(const QVariantList &buffers) { + _removedBuffers.clear(); + + foreach(QVariant buffer, buffers) { + _removedBuffers << buffer.value(); + } +} + +QVariantList BufferViewConfig::initTemporarilyRemovedBuffers() const { + QVariantList temporarilyRemovedBuffers; + + foreach(BufferId bufferId, _temporarilyRemovedBuffers) { + temporarilyRemovedBuffers << qVariantFromValue(bufferId); + } + + return temporarilyRemovedBuffers; +} + +void BufferViewConfig::initSetTemporarilyRemovedBuffers(const QVariantList &buffers) { + _temporarilyRemovedBuffers.clear(); + + foreach(QVariant buffer, buffers) { + _temporarilyRemovedBuffers << buffer.value(); + } +} + void BufferViewConfig::addBuffer(const BufferId &bufferId, int pos) { - qDebug() << "addBuffer" << bufferId; if(_buffers.contains(bufferId)) return; - + + if(pos < 0) + pos = 0; + if(pos > _buffers.count()) + pos = _buffers.count(); + + if(_removedBuffers.contains(bufferId)) + _removedBuffers.remove(bufferId); + + if(_temporarilyRemovedBuffers.contains(bufferId)) + _temporarilyRemovedBuffers.remove(bufferId); + _buffers.insert(pos, bufferId); emit bufferAdded(bufferId, pos); } void BufferViewConfig::moveBuffer(const BufferId &bufferId, int pos) { - qDebug() << "moveeBuffer" << bufferId; if(!_buffers.contains(bufferId)) return; - qDebug() << "lala" << bufferId << pos; + if(pos < 0) + pos = 0; + if(pos >= _buffers.count()) + pos = _buffers.count() - 1; + _buffers.move(_buffers.indexOf(bufferId), pos); emit bufferMoved(bufferId, pos); } void BufferViewConfig::removeBuffer(const BufferId &bufferId) { - qDebug() << "removeBuffer" << bufferId; - if(!_buffers.contains(bufferId)) - return; - - _buffers.removeAt(_buffers.indexOf(bufferId)); + if(_buffers.contains(bufferId)) + _buffers.removeAt(_buffers.indexOf(bufferId)); + + if(_removedBuffers.contains(bufferId)) + _removedBuffers.remove(bufferId); + + _temporarilyRemovedBuffers << bufferId; + emit bufferRemoved(bufferId); } + +void BufferViewConfig::removeBufferPermanently(const BufferId &bufferId) { + if(_buffers.contains(bufferId)) + _buffers.removeAt(_buffers.indexOf(bufferId)); + + if(_temporarilyRemovedBuffers.contains(bufferId)) + _temporarilyRemovedBuffers.remove(bufferId); + + _removedBuffers << bufferId; + + emit bufferPermanentlyRemoved(bufferId); +}