// setup available buffers config (for the bufferview on the left)
_configAvailable = new BufferViewConfig(-667, this);
_configAvailable->setBufferViewName("tmpChatMonitorAvailableBuffers");
- _configAvailable->sortAlphabetically();
+ _configAvailable->setSortAlphabetically(true);
+ _configAvailable->setDisableDecoration(true);
_configAvailable->setNetworkId(NetworkId());
_configAvailable->setInitialized();
_configActive = new BufferViewConfig(-666, this);
_configActive->setBufferViewName("tmpChatMonitorActiveBuffers");
_configActive->setSortAlphabetically(true);
+ _configActive->setDisableDecoration(true);
_configActive->setNetworkId(NetworkId());
_configActive->setInitialized();
bufferIdsFromConfig << v.value<BufferId>();
allBufferIds.removeAll(v.value<BufferId>());
}
+ qSort(bufferIdsFromConfig.begin(), bufferIdsFromConfig.end(), bufferIdLessThan);
_configActive->initSetBufferList(bufferIdsFromConfig);
}
ui.activeBuffers->setFilteredModel(Client::bufferModel(), _configActive);
+ qSort(allBufferIds.begin(), allBufferIds.end(), bufferIdLessThan);
_configAvailable->initSetBufferList(allBufferIds);
ui.availableBuffers->setFilteredModel(Client::bufferModel(), _configAvailable);
}
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();
}