X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fchatmonitorsettingspage.cpp;h=d457d3d3fa6c5c5399681f4f7e28c426b4bcf46e;hp=cbfa26ebfc2cc86c221b9ccf09b5c3df0e067491;hb=fc83addb87b4b5cd9cc92f0dd3491c93e51d9ed9;hpb=731ec69d4608ba95e3ae4f154b8ca1852e1db2e5 diff --git a/src/qtui/settingspages/chatmonitorsettingspage.cpp b/src/qtui/settingspages/chatmonitorsettingspage.cpp index cbfa26eb..d457d3d3 100644 --- a/src/qtui/settingspages/chatmonitorsettingspage.cpp +++ b/src/qtui/settingspages/chatmonitorsettingspage.cpp @@ -142,7 +142,19 @@ void ChatMonitorSettingsPage::widgetHasChanged() { } 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 uiBufs = _configActive->bufferList().toSet(); + QSet settingsBufs; + foreach(QVariant v, settings["Buffers"].toList()) + settingsBufs << v.value(); + if(uiBufs != settingsBufs) + return true; + return false; } @@ -227,9 +239,5 @@ void ChatMonitorSettingsPage::switchOperationMode(int modeIndex) { else if(newMode == ChatViewSettings::OptOut) { ui.labelActiveBuffers->setText(tr("Ignore:")); } - - if(settings["OperationMode"] != newMode) { - setChangedState(true); - } - settings["OperationMode"] = newMode; + widgetHasChanged(); }