[education/rkward] rkward/misc: Clean up logic around propagating filter changes
Thomas Friedrichsmeier
null at kde.org
Sat Oct 10 15:55:37 BST 2026
Git commit c8043ca1d69ebe3d6c8887b8f6556349b009af86 by Thomas Friedrichsmeier.
Committed on 10/10/2026 at 13:49.
Pushed by tfry into branch 'master'.
Clean up logic around propagating filter changes
M +24 -18 rkward/misc/rkobjectlistview.cpp
https://invent.kde.org/education/rkward/-/commit/c8043ca1d69ebe3d6c8887b8f6556349b009af86
diff --git a/rkward/misc/rkobjectlistview.cpp b/rkward/misc/rkobjectlistview.cpp
index 690e9ebe8..339bd4a96 100644
--- a/rkward/misc/rkobjectlistview.cpp
+++ b/rkward/misc/rkobjectlistview.cpp
@@ -347,23 +347,6 @@ void RKObjectListViewSettings::filterSettingsChanged() {
if (in_reset_filters) return; // Avoid updating for each setting, individually, when many are changed at once.
- if (filter_widget) {
- filter_on_name = filter_on_name_box->isChecked();
- filter_on_label = filter_on_label_box->isChecked();
- filter_on_class = filter_on_class_box->isChecked();
- depth_limit = depth_box->currentIndex();
- hide_functions = type_box->currentIndex() == 2;
- hide_non_functions = type_box->currentIndex() == 1;
-
- reset_filters_button->setVisible(!filter_on_name || !filter_on_class || !filter_on_label || (depth_limit != 1) || hide_functions || hide_non_functions || !sline->text().isEmpty());
- }
-
- for (int i = 0; i < SettingsCount; ++i) {
- persistent_settings[i] = persistent_settings_actions[i]->isChecked();
- if (is_tool_window) RKSettingsModuleObjectBrowser::setDefaultForWorkspace((PersistentSettings)i, persistent_settings[i]);
- else RKSettingsModuleObjectBrowser::setDefaultForVarselector((PersistentSettings)i, persistent_settings[i]);
- }
-
updateSelf();
}
@@ -494,7 +477,30 @@ void RKObjectListViewSettings::updateSelf() {
void RKObjectListViewSettings::updateSelfNow() {
RK_TRACE(APP);
- invalidate();
+#if QT_VERSION >= QT_VERSION_CHECK(6, 9, 0)
+ beginFilterChange();
+#endif
+ if (filter_widget) {
+ filter_on_name = filter_on_name_box->isChecked();
+ filter_on_label = filter_on_label_box->isChecked();
+ filter_on_class = filter_on_class_box->isChecked();
+ depth_limit = depth_box->currentIndex();
+ hide_functions = type_box->currentIndex() == 2;
+ hide_non_functions = type_box->currentIndex() == 1;
+
+ reset_filters_button->setVisible(!filter_on_name || !filter_on_class || !filter_on_label || (depth_limit != 1) || hide_functions || hide_non_functions || !sline->text().isEmpty());
+ }
+
+ for (int i = 0; i < SettingsCount; ++i) {
+ persistent_settings[i] = persistent_settings_actions[i]->isChecked();
+ if (is_tool_window) RKSettingsModuleObjectBrowser::setDefaultForWorkspace((PersistentSettings)i, persistent_settings[i]);
+ else RKSettingsModuleObjectBrowser::setDefaultForVarselector((PersistentSettings)i, persistent_settings[i]);
+ }
+#if QT_VERSION >= QT_VERSION_CHECK(6, 9, 0)
+ endFilterChange();
+#else
+ invalidateFilter();
+#endif
Q_EMIT settingsChanged();
}
More information about the rkward-tracker
mailing list