connect(ui.settingsTree, SIGNAL(itemSelectionChanged()), this, SLOT(itemSelected()));
connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *)));
+
+ setButtonStates();
}
void SettingsDlg::registerSettingsPage(SettingsPage *sp) {
}
bool ChatMonitorSettingsPage::testHasChanged() {
- if (_configAvailable != _configActive) return true;
+ if(settings["OperationMode"] != ui.operationMode->itemData(ui.operationMode->currentIndex()))
+ return true;
+
+ if(_configActive->bufferList().count() != settings["Buffers"].toList().count())
+ return true;
+
+ QSet<BufferId> uiBufs = _configActive->bufferList().toSet();
+ QSet<BufferId> settingsBufs;
+ foreach(QVariant v, settings["Buffers"].toList())
+ settingsBufs << v.value<BufferId>();
+ if(uiBufs != settingsBufs)
+ return true;
+
return false;
}
else if(newMode == ChatViewSettings::OptOut) {
ui.labelActiveBuffers->setText(tr("Ignore:"));
}
-
- if(settings["OperationMode"] != newMode) {
- setChangedState(true);
- }
- settings["OperationMode"] = newMode;
+ widgetHasChanged();
}