1 /***************************************************************************
2 * Copyright (C) 2005-2018 by the Quassel Project *
3 * devel@quassel-irc.org *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) version 3. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
19 ***************************************************************************/
21 #include "bufferviewconfig.h"
23 BufferViewConfig::BufferViewConfig(int bufferViewId, QObject* parent)
24 : SyncableObject(parent)
25 , _bufferViewId(bufferViewId)
27 setObjectName(QString::number(bufferViewId));
30 BufferViewConfig::BufferViewConfig(int bufferViewId, const QVariantMap& properties, QObject* parent)
31 : SyncableObject(parent)
32 , _bufferViewId(bufferViewId)
34 fromVariantMap(properties);
35 setObjectName(QString::number(bufferViewId));
38 void BufferViewConfig::setBufferViewName(const QString& bufferViewName)
40 if (_bufferViewName == bufferViewName)
43 _bufferViewName = bufferViewName;
44 SYNC(ARG(bufferViewName))
45 emit bufferViewNameSet(bufferViewName);
48 void BufferViewConfig::setNetworkId(const NetworkId& networkId)
50 if (_networkId == networkId)
53 _networkId = networkId;
55 emit networkIdSet(networkId);
59 void BufferViewConfig::setAddNewBuffersAutomatically(bool addNewBuffersAutomatically)
61 if (_addNewBuffersAutomatically == addNewBuffersAutomatically)
64 _addNewBuffersAutomatically = addNewBuffersAutomatically;
65 SYNC(ARG(addNewBuffersAutomatically))
69 void BufferViewConfig::setSortAlphabetically(bool sortAlphabetically)
71 if (_sortAlphabetically == sortAlphabetically)
74 _sortAlphabetically = sortAlphabetically;
75 SYNC(ARG(sortAlphabetically))
79 void BufferViewConfig::setDisableDecoration(bool disableDecoration)
81 if (_disableDecoration == disableDecoration)
84 _disableDecoration = disableDecoration;
85 SYNC(ARG(disableDecoration))
88 void BufferViewConfig::setAllowedBufferTypes(int bufferTypes)
90 if (_allowedBufferTypes == bufferTypes)
93 _allowedBufferTypes = bufferTypes;
94 SYNC(ARG(bufferTypes))
98 void BufferViewConfig::setMinimumActivity(int activity)
100 if (_minimumActivity == activity)
103 _minimumActivity = activity;
105 emit configChanged();
108 void BufferViewConfig::setHideInactiveBuffers(bool hideInactiveBuffers)
110 if (_hideInactiveBuffers == hideInactiveBuffers)
113 _hideInactiveBuffers = hideInactiveBuffers;
114 SYNC(ARG(hideInactiveBuffers))
115 emit configChanged();
118 void BufferViewConfig::setHideInactiveNetworks(bool hideInactiveNetworks)
120 if (_hideInactiveNetworks == hideInactiveNetworks)
123 _hideInactiveNetworks = hideInactiveNetworks;
124 SYNC(ARG(hideInactiveNetworks))
125 emit configChanged();
128 void BufferViewConfig::setShowSearch(bool showSearch)
130 if (_showSearch == showSearch) {
134 _showSearch = showSearch;
135 SYNC(ARG(showSearch))
136 emit configChanged();
139 QVariantList BufferViewConfig::initBufferList() const
141 QVariantList buffers;
143 foreach (BufferId bufferId, _buffers) {
144 buffers << qVariantFromValue(bufferId);
150 void BufferViewConfig::initSetBufferList(const QVariantList& buffers)
154 foreach (QVariant buffer, buffers) {
155 _buffers << buffer.value<BufferId>();
158 emit configChanged(); // used to track changes in the settingspage
161 void BufferViewConfig::initSetBufferList(const QList<BufferId>& buffers)
165 foreach (BufferId bufferId, buffers) {
166 _buffers << bufferId;
169 emit configChanged(); // used to track changes in the settingspage
172 QVariantList BufferViewConfig::initRemovedBuffers() const
174 QVariantList removedBuffers;
176 foreach (BufferId bufferId, _removedBuffers) {
177 removedBuffers << qVariantFromValue(bufferId);
180 return removedBuffers;
183 void BufferViewConfig::initSetRemovedBuffers(const QVariantList& buffers)
185 _removedBuffers.clear();
187 foreach (QVariant buffer, buffers) {
188 _removedBuffers << buffer.value<BufferId>();
192 QVariantList BufferViewConfig::initTemporarilyRemovedBuffers() const
194 QVariantList temporarilyRemovedBuffers;
196 foreach (BufferId bufferId, _temporarilyRemovedBuffers) {
197 temporarilyRemovedBuffers << qVariantFromValue(bufferId);
200 return temporarilyRemovedBuffers;
203 void BufferViewConfig::initSetTemporarilyRemovedBuffers(const QVariantList& buffers)
205 _temporarilyRemovedBuffers.clear();
207 foreach (QVariant buffer, buffers) {
208 _temporarilyRemovedBuffers << buffer.value<BufferId>();
212 void BufferViewConfig::addBuffer(const BufferId& bufferId, int pos)
214 if (_buffers.contains(bufferId))
219 if (pos > _buffers.count())
220 pos = _buffers.count();
222 if (_removedBuffers.contains(bufferId))
223 _removedBuffers.remove(bufferId);
225 if (_temporarilyRemovedBuffers.contains(bufferId))
226 _temporarilyRemovedBuffers.remove(bufferId);
228 _buffers.insert(pos, bufferId);
229 SYNC(ARG(bufferId), ARG(pos))
230 emit bufferAdded(bufferId, pos);
231 emit configChanged();
234 void BufferViewConfig::moveBuffer(const BufferId& bufferId, int pos)
236 if (!_buffers.contains(bufferId))
241 if (pos >= _buffers.count())
242 pos = _buffers.count() - 1;
244 _buffers.move(_buffers.indexOf(bufferId), pos);
245 SYNC(ARG(bufferId), ARG(pos))
246 emit bufferMoved(bufferId, pos);
247 emit configChanged();
250 void BufferViewConfig::removeBuffer(const BufferId& bufferId)
252 if (_buffers.contains(bufferId))
253 _buffers.removeAt(_buffers.indexOf(bufferId));
255 if (_removedBuffers.contains(bufferId))
256 _removedBuffers.remove(bufferId);
258 _temporarilyRemovedBuffers << bufferId;
260 emit bufferRemoved(bufferId);
261 emit configChanged();
264 void BufferViewConfig::removeBufferPermanently(const BufferId& bufferId)
266 if (_buffers.contains(bufferId))
267 _buffers.removeAt(_buffers.indexOf(bufferId));
269 if (_temporarilyRemovedBuffers.contains(bufferId))
270 _temporarilyRemovedBuffers.remove(bufferId);
272 _removedBuffers << bufferId;
275 emit bufferPermanentlyRemoved(bufferId);
276 emit configChanged();