/***************************************************************************
- * 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 *
#include "bufferinfo.h"
+INIT_SYNCABLE_OBJECT(BufferViewConfig)
BufferViewConfig::BufferViewConfig(int bufferViewId, QObject *parent)
: SyncableObject(parent),
_bufferViewId(bufferViewId),
_addNewBuffersAutomatically(true),
_sortAlphabetically(true),
_hideInactiveBuffers(false),
+ _disableDecoration(false),
_allowedBufferTypes(BufferInfo::StatusBuffer | BufferInfo::ChannelBuffer | BufferInfo::QueryBuffer | BufferInfo::GroupBuffer),
_minimumActivity(0)
{
return;
_bufferViewName = bufferViewName;
+ SYNC(ARG(bufferViewName))
emit bufferViewNameSet(bufferViewName);
}
return;
_networkId = networkId;
+ SYNC(ARG(networkId))
emit networkIdSet(networkId);
+ emit configChanged();
}
void BufferViewConfig::setAddNewBuffersAutomatically(bool addNewBuffersAutomatically) {
return;
_addNewBuffersAutomatically = addNewBuffersAutomatically;
- emit addNewBuffersAutomaticallySet(addNewBuffersAutomatically);
+ SYNC(ARG(addNewBuffersAutomatically))
+ emit configChanged();
}
void BufferViewConfig::setSortAlphabetically(bool sortAlphabetically) {
return;
_sortAlphabetically = sortAlphabetically;
- emit sortAlphabeticallySet(sortAlphabetically);
+ SYNC(ARG(sortAlphabetically))
+ emit configChanged();
+}
+
+void BufferViewConfig::setDisableDecoration(bool disableDecoration) {
+ if(_disableDecoration == disableDecoration)
+ return;
+
+ _disableDecoration = disableDecoration;
+ SYNC(ARG(disableDecoration))
}
void BufferViewConfig::setAllowedBufferTypes(int bufferTypes) {
return;
_allowedBufferTypes = bufferTypes;
- emit allowedBufferTypesSet(bufferTypes);
+ SYNC(ARG(bufferTypes))
+ emit configChanged();
}
void BufferViewConfig::setMinimumActivity(int activity) {
return;
_minimumActivity = activity;
- emit minimumActivitySet(activity);
+ SYNC(ARG(activity))
+ emit configChanged();
}
void BufferViewConfig::setHideInactiveBuffers(bool hideInactiveBuffers) {
return;
_hideInactiveBuffers = hideInactiveBuffers;
- emit hideInactiveBuffersSet(hideInactiveBuffers);
+ SYNC(ARG(hideInactiveBuffers))
+ emit configChanged();
}
QVariantList BufferViewConfig::initBufferList() const {
_buffers << buffer.value<BufferId>();
}
- emit bufferListSet();
+ emit configChanged(); // used to track changes in the settingspage
}
void BufferViewConfig::initSetBufferList(const QList<BufferId> &buffers) {
_buffers << bufferId;
}
- emit bufferListSet();
+ emit configChanged(); // used to track changes in the settingspage
+}
+
+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<BufferId>();
+ }
+}
+
+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<BufferId>();
+ }
}
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);
+ SYNC(ARG(bufferId), ARG(pos))
emit bufferAdded(bufferId, pos);
+ emit configChanged();
}
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);
+ SYNC(ARG(bufferId), ARG(pos))
emit bufferMoved(bufferId, pos);
+ emit configChanged();
}
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;
+ 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();
}