From 620d43ea4ee1e5d99d3c21fc89534096955937b1 Mon Sep 17 00:00:00 2001 From: Corey Berla Date: Thu, 1 Dec 2022 12:08:32 -0800 Subject: list-view: Reload the view when tree expander setting is changed We have to reload the view in order to show the expanders, so lets do it for the user. --- src/nautilus-list-view.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'src/nautilus-list-view.c') diff --git a/src/nautilus-list-view.c b/src/nautilus-list-view.c index 443b0a2b5..4a100b5e5 100644 --- a/src/nautilus-list-view.c +++ b/src/nautilus-list-view.c @@ -738,9 +738,6 @@ real_begin_loading (NautilusFilesView *files_view) update_columns_settings_from_metadata_and_preferences (self); - /* TODO Reload the view if this setting changes. We can't easily switch - * tree mode on/off on an already loaded view and the preference is not - * expected to be changed frequently. */ self->expand_as_a_tree = g_settings_get_boolean (nautilus_list_view_preferences, NAUTILUS_PREFERENCES_LIST_VIEW_USE_TREE); @@ -1288,6 +1285,15 @@ setup_view_columns (NautilusListView *self) } } +static void +nautilus_list_view_reload (NautilusListView *self) +{ + NautilusWindowSlot *slot; + + slot = nautilus_files_view_get_nautilus_window_slot (NAUTILUS_FILES_VIEW (self)); + nautilus_window_slot_queue_reload (slot); +} + static void nautilus_list_view_init (NautilusListView *self) { @@ -1309,6 +1315,11 @@ nautilus_list_view_init (NautilusListView *self) G_CALLBACK (update_columns_settings_from_metadata_and_preferences), self, G_CONNECT_SWAPPED); + g_signal_connect_object (nautilus_list_view_preferences, + "changed::" NAUTILUS_PREFERENCES_LIST_VIEW_USE_TREE, + G_CALLBACK (nautilus_list_view_reload), + self, + G_CONNECT_SWAPPED); content_widget = nautilus_files_view_get_content_widget (NAUTILUS_FILES_VIEW (self)); @@ -1352,6 +1363,10 @@ nautilus_list_view_dispose (GObject *object) model = nautilus_list_base_get_model (NAUTILUS_LIST_BASE (self)); nautilus_view_model_set_sorter (model, NULL); + g_signal_handlers_disconnect_by_func (nautilus_list_view_preferences, + nautilus_list_view_reload, + self); + g_clear_object (&self->file_path_base_location); g_clear_pointer (&self->factory_to_column_map, g_hash_table_destroy); -- cgit v1.2.1