+void BufferViewFilter::configInitialized() {
+ if(!config())
+ return;
+
+ connect(config(), SIGNAL(bufferViewNameSet(const QString &)), this, SLOT(invalidate()));
+ connect(config(), SIGNAL(networkIdSet(const NetworkId &)), this, SLOT(invalidate()));
+ connect(config(), SIGNAL(addNewBuffersAutomaticallySet(bool)), this, SLOT(invalidate()));
+ connect(config(), SIGNAL(sortAlphabeticallySet(bool)), this, SLOT(invalidate()));
+ connect(config(), SIGNAL(hideInactiveBuffersSet(bool)), this, SLOT(invalidate()));
+ connect(config(), SIGNAL(allowedBufferTypesSet(int)), this, SLOT(invalidate()));
+ connect(config(), SIGNAL(minimumActivitySet(int)), this, SLOT(invalidate()));
+ connect(config(), SIGNAL(bufferListSet()), this, SLOT(invalidate()));
+ connect(config(), SIGNAL(bufferAdded(const BufferId &, int)), this, SLOT(invalidate()));
+ connect(config(), SIGNAL(bufferMoved(const BufferId &, int)), this, SLOT(invalidate()));
+ connect(config(), SIGNAL(bufferRemoved(const BufferId &)), this, SLOT(invalidate()));
+ connect(config(), SIGNAL(bufferPermanentlyRemoved(const BufferId &)), this, SLOT(invalidate()));
+
+ disconnect(config(), SIGNAL(initDone()), this, SLOT(configInitialized()));
+
+ setObjectName(config()->bufferViewName());
+
+ invalidate();
+ emit configChanged();
+}
+
+QList<QAction *> BufferViewFilter::actions(const QModelIndex &index) {
+ Q_UNUSED(index)
+ QList<QAction *> actionList;
+ actionList << &_enableEditMode;
+ return actionList;
+}
+
+void BufferViewFilter::enableEditMode(bool enable) {
+ if(_editMode == enable) {
+ return;
+ }
+ _editMode = enable;
+
+ if(!config())
+ return;
+
+ if(enable == false) {
+ addBuffers(QList<BufferId>::fromSet(_toAdd));
+ QSet<BufferId>::const_iterator iter;
+ for(iter = _toTempRemove.constBegin(); iter != _toTempRemove.constEnd(); iter++) {
+ if(config()->temporarilyRemovedBuffers().contains(*iter))
+ continue;
+ config()->requestRemoveBuffer(*iter);
+ }
+ for(iter = _toRemove.constBegin(); iter != _toRemove.constEnd(); iter++) {
+ if(config()->removedBuffers().contains(*iter))
+ continue;
+ config()->requestRemoveBufferPermanently(*iter);
+ }
+ }
+ _toAdd.clear();
+ _toTempRemove.clear();
+ _toRemove.clear();
+
+ invalidate();
+}
+
+