+ else {
+ ui.settingsGroupBox->setEnabled(false);
+ ui.bufferViewPreview->setEnabled(false);
+ }
+}
+
+
+void BufferViewSettingsPage::loadConfig(BufferViewConfig *config)
+{
+ if (!config)
+ return;
+
+ _ignoreWidgetChanges = true;
+ ui.onlyStatusBuffers->setChecked(BufferInfo::StatusBuffer & config->allowedBufferTypes());
+ ui.onlyChannelBuffers->setChecked(BufferInfo::ChannelBuffer & config->allowedBufferTypes());
+ ui.onlyQueryBuffers->setChecked(BufferInfo::QueryBuffer & config->allowedBufferTypes());
+ ui.addNewBuffersAutomatically->setChecked(config->addNewBuffersAutomatically());
+ ui.sortAlphabetically->setChecked(config->sortAlphabetically());
+ ui.hideInactiveBuffers->setChecked(config->hideInactiveBuffers());
+
+ int networkIndex = 0;
+ for (int i = 0; i < ui.networkSelector->count(); i++) {
+ if (ui.networkSelector->itemData(i).value<NetworkId>() == config->networkId()) {
+ networkIndex = i;
+ break;
+ }
+ }
+ ui.networkSelector->setCurrentIndex(networkIndex);
+
+ int activityIndex = 0;
+ int minimumActivity = config->minimumActivity();
+ while (minimumActivity) {
+ activityIndex++;
+ minimumActivity = minimumActivity >> 1;
+ }
+ ui.minimumActivitySelector->setCurrentIndex(activityIndex);
+
+ ui.bufferViewPreview->setFilteredModel(Client::bufferModel(), config);
+
+ _ignoreWidgetChanges = false;
+}
+
+
+void BufferViewSettingsPage::saveConfig(BufferViewConfig *config)
+{
+ if (!config)
+ return;
+
+ int allowedBufferTypes = 0;
+ if (ui.onlyStatusBuffers->isChecked())
+ allowedBufferTypes |= BufferInfo::StatusBuffer;
+ if (ui.onlyChannelBuffers->isChecked())
+ allowedBufferTypes |= BufferInfo::ChannelBuffer;
+ if (ui.onlyQueryBuffers->isChecked())
+ allowedBufferTypes |= BufferInfo::QueryBuffer;
+ config->setAllowedBufferTypes(allowedBufferTypes);
+
+ config->setAddNewBuffersAutomatically(ui.addNewBuffersAutomatically->isChecked());
+ config->setSortAlphabetically(ui.sortAlphabetically->isChecked());
+ config->setHideInactiveBuffers(ui.hideInactiveBuffers->isChecked());
+ config->setNetworkId(ui.networkSelector->itemData(ui.networkSelector->currentIndex()).value<NetworkId>());
+
+ int minimumActivity = 0;
+ if (ui.minimumActivitySelector->currentIndex() > 0)
+ minimumActivity = 1 << (ui.minimumActivitySelector->currentIndex() - 1);
+ config->setMinimumActivity(minimumActivity);
+
+ QList<BufferId> bufferIds = fromVariantList<BufferId>(config->property("OriginalBufferList").toList());
+ if (config->sortAlphabetically())
+ Client::networkModel()->sortBufferIds(bufferIds);
+
+ if (!_newBufferViews.contains(config) || config->addNewBuffersAutomatically())
+ config->initSetBufferList(bufferIds);