summaryrefslogtreecommitdiff
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
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.
-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);