summaryrefslogtreecommitdiff
path: root/src/nautilus-list-view.c
diff options
context:
space:
mode:
authorCorey Berla <corey@berla.me>2022-12-01 12:08:32 -0800
committerAntónio Fernandes <antoniof@gnome.org>2023-01-10 02:01:27 +0000
commit620d43ea4ee1e5d99d3c21fc89534096955937b1 (patch)
treed453d9a970f5ec1522f7cf2fde84dd0369e58859 /src/nautilus-list-view.c
parent92f5ee576bcc2d0eec51206291038f1ec1e055e0 (diff)
downloadnautilus-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.c21
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);