diff options
author | Corey Berla <corey@berla.me> | 2022-12-01 12:08:32 -0800 |
---|---|---|
committer | António Fernandes <antoniof@gnome.org> | 2023-01-10 02:01:27 +0000 |
commit | 620d43ea4ee1e5d99d3c21fc89534096955937b1 (patch) | |
tree | d453d9a970f5ec1522f7cf2fde84dd0369e58859 /src/nautilus-list-view.c | |
parent | 92f5ee576bcc2d0eec51206291038f1ec1e055e0 (diff) | |
download | nautilus-620d43ea4ee1e5d99d3c21fc89534096955937b1.tar.gz |
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.
Diffstat (limited to 'src/nautilus-list-view.c')
-rw-r--r-- | src/nautilus-list-view.c | 21 |
1 files changed, 18 insertions, 3 deletions
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); @@ -1289,6 +1286,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) { NautilusViewModel *model; @@ -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); |