- if(config) {
- 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()));
+
+ if(!config) {
+ invalidate();
+ setObjectName("");
+ return;
+ }
+
+ if(config->isInitialized()) {
+ configInitialized();
+ } else {
+ // we use a queued connection here since manipulating the connection list of a sending object
+ // doesn't seem to be such a good idea while executing a connected slots.
+ connect(config, SIGNAL(initDone()), this, SLOT(configInitialized()), Qt::QueuedConnection);
+ invalidate();
+ }
+}
+
+void BufferViewFilter::configInitialized() {
+ if(!config())
+ return;
+
+// connect(config(), SIGNAL(bufferViewNameSet(const QString &)), this, SLOT(invalidate()));
+ connect(config(), SIGNAL(configChanged()), 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();
+}
+
+void BufferViewFilter::showServerQueriesChanged() {
+ BufferSettings bufferSettings;
+
+ bool showQueries = (bufferSettings.serverNoticesTarget() & BufferSettings::DefaultBuffer);
+ if(_showServerQueries != showQueries) {
+ _showServerQueries = showQueries;
+ invalidate();
+ }
+}
+
+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;