X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fbufferviewconfig.cpp;h=54edae50bcc1649fa5c191b60e8e3f09d78e2b52;hp=1affaba7bee6a8661508ef933863985e2ed709ac;hb=3545504d0588f79ac92a7702c4cf78dc0adff05f;hpb=cf7c5679c2475bb563cd64e15477c485d89368a3 diff --git a/src/common/bufferviewconfig.cpp b/src/common/bufferviewconfig.cpp index 1affaba7..54edae50 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-2016 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,149 +15,293 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #include "bufferviewconfig.h" #include "bufferinfo.h" +INIT_SYNCABLE_OBJECT(BufferViewConfig) BufferViewConfig::BufferViewConfig(int bufferViewId, QObject *parent) - : SyncableObject(parent), + : SyncableObject(parent), _bufferViewId(bufferViewId), _addNewBuffersAutomatically(true), _sortAlphabetically(true), _hideInactiveBuffers(false), + _hideInactiveNetworks(false), + _disableDecoration(false), _allowedBufferTypes(BufferInfo::StatusBuffer | BufferInfo::ChannelBuffer | BufferInfo::QueryBuffer | BufferInfo::GroupBuffer), - _minimumActivity(0) + _minimumActivity(0), + _showSearch(true) { - setObjectName(QString::number(bufferViewId)); + setObjectName(QString::number(bufferViewId)); } + BufferViewConfig::BufferViewConfig(int bufferViewId, const QVariantMap &properties, QObject *parent) - : SyncableObject(parent), + : SyncableObject(parent), _bufferViewId(bufferViewId) { - fromVariantMap(properties); - setObjectName(QString::number(bufferViewId)); + fromVariantMap(properties); + setObjectName(QString::number(bufferViewId)); } -void BufferViewConfig::setBufferViewName(const QString &bufferViewName) { - if(_bufferViewName == bufferViewName) - return; - _bufferViewName = bufferViewName; - emit bufferViewNameSet(bufferViewName); +void BufferViewConfig::setBufferViewName(const QString &bufferViewName) +{ + if (_bufferViewName == bufferViewName) + return; + + _bufferViewName = bufferViewName; + SYNC(ARG(bufferViewName)) + emit bufferViewNameSet(bufferViewName); } -void BufferViewConfig::setNetworkId(const NetworkId &networkId) { - if(_networkId == networkId) - return; - _networkId = networkId; - emit networkIdSet(networkId); +void BufferViewConfig::setNetworkId(const NetworkId &networkId) +{ + if (_networkId == networkId) + return; + + _networkId = networkId; + SYNC(ARG(networkId)) + emit networkIdSet(networkId); + emit configChanged(); +} + + +void BufferViewConfig::setAddNewBuffersAutomatically(bool addNewBuffersAutomatically) +{ + if (_addNewBuffersAutomatically == addNewBuffersAutomatically) + return; + + _addNewBuffersAutomatically = addNewBuffersAutomatically; + SYNC(ARG(addNewBuffersAutomatically)) + emit configChanged(); } -void BufferViewConfig::setAddNewBuffersAutomatically(bool addNewBuffersAutomatically) { - if(_addNewBuffersAutomatically == addNewBuffersAutomatically) - return; - _addNewBuffersAutomatically = addNewBuffersAutomatically; - emit addNewBuffersAutomaticallySet(addNewBuffersAutomatically); +void BufferViewConfig::setSortAlphabetically(bool sortAlphabetically) +{ + if (_sortAlphabetically == sortAlphabetically) + return; + + _sortAlphabetically = sortAlphabetically; + SYNC(ARG(sortAlphabetically)) + emit configChanged(); } -void BufferViewConfig::setSortAlphabetically(bool sortAlphabetically) { - if(_sortAlphabetically == sortAlphabetically) - return; - _sortAlphabetically = sortAlphabetically; - emit sortAlphabeticallySet(sortAlphabetically); +void BufferViewConfig::setDisableDecoration(bool disableDecoration) +{ + if (_disableDecoration == disableDecoration) + return; + + _disableDecoration = disableDecoration; + SYNC(ARG(disableDecoration)) } -void BufferViewConfig::setAllowedBufferTypes(int bufferTypes) { - if(_allowedBufferTypes == bufferTypes) - return; - _allowedBufferTypes = bufferTypes; - emit allowedBufferTypesSet(bufferTypes); +void BufferViewConfig::setAllowedBufferTypes(int bufferTypes) +{ + if (_allowedBufferTypes == bufferTypes) + return; + + _allowedBufferTypes = bufferTypes; + SYNC(ARG(bufferTypes)) + emit configChanged(); } -void BufferViewConfig::setMinimumActivity(int activity) { - if(_minimumActivity == activity) - return; - _minimumActivity = activity; - emit minimumActivitySet(activity); +void BufferViewConfig::setMinimumActivity(int activity) +{ + if (_minimumActivity == activity) + return; + + _minimumActivity = activity; + SYNC(ARG(activity)) + emit configChanged(); } -void BufferViewConfig::setHideInactiveBuffers(bool hideInactiveBuffers) { - if(_hideInactiveBuffers == hideInactiveBuffers) - return; - _hideInactiveBuffers = hideInactiveBuffers; - emit hideInactiveBuffersSet(hideInactiveBuffers); +void BufferViewConfig::setHideInactiveBuffers(bool hideInactiveBuffers) +{ + if (_hideInactiveBuffers == hideInactiveBuffers) + return; + + _hideInactiveBuffers = hideInactiveBuffers; + SYNC(ARG(hideInactiveBuffers)) + emit configChanged(); } -QVariantList BufferViewConfig::initBufferList() const { - QVariantList buffers; +void BufferViewConfig::setHideInactiveNetworks(bool hideInactiveNetworks) +{ + if (_hideInactiveNetworks == hideInactiveNetworks) + return; + + _hideInactiveNetworks = hideInactiveNetworks; + SYNC(ARG(hideInactiveNetworks)) + emit configChanged(); +} - foreach(BufferId bufferId, _buffers) { - buffers << qVariantFromValue(bufferId); - } +void BufferViewConfig::setShowSearch(bool showSearch) { + if (_showSearch == showSearch) { + return; + } - return buffers; + _showSearch = showSearch; + SYNC(ARG(showSearch)) + emit configChanged(); } -void BufferViewConfig::initSetBufferList(const QVariantList &buffers) { - _buffers.clear(); - foreach(QVariant buffer, buffers) { - _buffers << buffer.value(); - } +QVariantList BufferViewConfig::initBufferList() const +{ + QVariantList buffers; + + foreach(BufferId bufferId, _buffers) { + buffers << qVariantFromValue(bufferId); + } - emit bufferListSet(); + return buffers; } -void BufferViewConfig::initSetBufferList(const QList &buffers) { - _buffers.clear(); - foreach(BufferId bufferId, buffers) { - _buffers << bufferId; - } +void BufferViewConfig::initSetBufferList(const QVariantList &buffers) +{ + _buffers.clear(); + + foreach(QVariant buffer, buffers) { + _buffers << buffer.value(); + } - emit bufferListSet(); + emit configChanged(); // used to track changes in the settingspage } -void BufferViewConfig::addBuffer(const BufferId &bufferId, int pos) { - if(_buffers.contains(bufferId)) - return; - if(pos < 0) - pos = 0; - if(pos > _buffers.count()) - pos = _buffers.count(); - - _buffers.insert(pos, bufferId); - emit bufferAdded(bufferId, pos); +void BufferViewConfig::initSetBufferList(const QList &buffers) +{ + _buffers.clear(); + + foreach(BufferId bufferId, buffers) { + _buffers << bufferId; + } + + emit configChanged(); // used to track changes in the settingspage } -void BufferViewConfig::moveBuffer(const BufferId &bufferId, int pos) { - if(!_buffers.contains(bufferId)) - return; - if(pos < 0) - pos = 0; - if(pos >= _buffers.count()) - pos = _buffers.count() - 1; +QVariantList BufferViewConfig::initRemovedBuffers() const +{ + QVariantList removedBuffers; + + foreach(BufferId bufferId, _removedBuffers) { + removedBuffers << qVariantFromValue(bufferId); + } - _buffers.move(_buffers.indexOf(bufferId), pos); - emit bufferMoved(bufferId, pos); + return removedBuffers; } -void BufferViewConfig::removeBuffer(const BufferId &bufferId) { - if(!_buffers.contains(bufferId)) - return; - - _buffers.removeAt(_buffers.indexOf(bufferId)); - emit bufferRemoved(bufferId); + +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) +{ + 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); + SYNC(ARG(bufferId), ARG(pos)) + emit bufferAdded(bufferId, pos); + emit configChanged(); +} + + +void BufferViewConfig::moveBuffer(const BufferId &bufferId, int pos) +{ + if (!_buffers.contains(bufferId)) + return; + + if (pos < 0) + pos = 0; + if (pos >= _buffers.count()) + pos = _buffers.count() - 1; + + _buffers.move(_buffers.indexOf(bufferId), pos); + SYNC(ARG(bufferId), ARG(pos)) + emit bufferMoved(bufferId, pos); + emit configChanged(); +} + + +void BufferViewConfig::removeBuffer(const BufferId &bufferId) +{ + if (_buffers.contains(bufferId)) + _buffers.removeAt(_buffers.indexOf(bufferId)); + + if (_removedBuffers.contains(bufferId)) + _removedBuffers.remove(bufferId); + + _temporarilyRemovedBuffers << bufferId; + SYNC(ARG(bufferId)) + emit bufferRemoved(bufferId); + emit configChanged(); +} + + +void BufferViewConfig::removeBufferPermanently(const BufferId &bufferId) +{ + if (_buffers.contains(bufferId)) + _buffers.removeAt(_buffers.indexOf(bufferId)); + + if (_temporarilyRemovedBuffers.contains(bufferId)) + _temporarilyRemovedBuffers.remove(bufferId); + + _removedBuffers << bufferId; + + SYNC(ARG(bufferId)) + emit bufferPermanentlyRemoved(bufferId); + emit configChanged(); }