From 460142fa0269fc9066ad79a77ea02ddff525dab4 Mon Sep 17 00:00:00 2001 From: Leigh Scott Date: Mon, 25 Apr 2022 12:07:38 +0100 Subject: [PATCH] Sync sort-directories-first with gtk file chooser --- libnemo-private/nemo-global-preferences.c | 4 ++++ libnemo-private/nemo-global-preferences.h | 1 + src/nemo-file-management-properties.c | 12 ++++++++++++ 3 files changed, 17 insertions(+) diff --git a/libnemo-private/nemo-global-preferences.c b/libnemo-private/nemo-global-preferences.c index e01893be0..6dd8221a9 100644 --- a/libnemo-private/nemo-global-preferences.c +++ b/libnemo-private/nemo-global-preferences.c @@ -43,6 +43,7 @@ GSettings *nemo_compact_view_preferences; GSettings *nemo_desktop_preferences; GSettings *nemo_tree_sidebar_preferences; GSettings *nemo_window_state; +GSettings *gtk_filechooser_preferences; GSettings *nemo_plugin_preferences; GSettings *nemo_menu_config_preferences; GSettings *nemo_search_preferences; @@ -330,6 +331,9 @@ nemo_global_preferences_init (void) nemo_list_view_preferences = g_settings_new("org.nemo.list-view"); nemo_compact_view_preferences = g_settings_new("org.nemo.compact-view"); nemo_desktop_preferences = g_settings_new("org.nemo.desktop"); + /* Some settings such as show hidden files are shared between Nautilus and GTK file chooser */ + gtk_filechooser_preferences = g_settings_new_with_path ("org.gtk.Settings.FileChooser", + "/org/gtk/settings/file-chooser/"); nemo_tree_sidebar_preferences = g_settings_new("org.nemo.sidebar-panels.tree"); nemo_plugin_preferences = g_settings_new("org.nemo.plugins"); nemo_menu_config_preferences = g_settings_new("org.nemo.preferences.menu-config"); diff --git a/libnemo-private/nemo-global-preferences.h b/libnemo-private/nemo-global-preferences.h index 8461f912d..a9259f08d 100644 --- a/libnemo-private/nemo-global-preferences.h +++ b/libnemo-private/nemo-global-preferences.h @@ -292,6 +292,7 @@ extern GSettings *nemo_compact_view_preferences; extern GSettings *nemo_desktop_preferences; extern GSettings *nemo_tree_sidebar_preferences; extern GSettings *nemo_window_state; +extern GSettings *gtk_filechooser_preferences; extern GSettings *nemo_plugin_preferences; extern GSettings *nemo_menu_config_preferences; extern GSettings *nemo_search_preferences; diff --git a/src/nemo-file-management-properties.c b/src/nemo-file-management-properties.c index 9ef16cb11..513891b86 100644 --- a/src/nemo-file-management-properties.c +++ b/src/nemo-file-management-properties.c @@ -810,6 +810,15 @@ on_dialog_destroy (GtkWidget *widget, g_object_unref (builder); } +static void +set_gtk_filechooser_sort_first (GObject *object, + GParamSpec *pspec) +{ + g_settings_set_boolean (gtk_filechooser_preferences, + NEMO_PREFERENCES_SORT_DIRECTORIES_FIRST, + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (object))); +} + static void nemo_file_management_properties_dialog_setup (GtkBuilder *builder, GtkWindow *window, @@ -884,6 +893,9 @@ nemo_file_management_properties_dialog_setup (GtkBuilder *builder, bind_builder_bool (builder, nemo_preferences, NEMO_FILE_MANAGEMENT_PROPERTIES_FOLDERS_FIRST_WIDGET, NEMO_PREFERENCES_SORT_DIRECTORIES_FIRST); + g_signal_connect (gtk_builder_get_object (builder, NEMO_FILE_MANAGEMENT_PROPERTIES_FOLDERS_FIRST_WIDGET), + "notify::active", + G_CALLBACK (set_gtk_filechooser_sort_first), NULL); bind_builder_bool(builder, nemo_preferences, NEMO_FILE_MANAGEMENT_QUICK_RENAMES_WITH_PAUSE_IN_BETWEEN, NEMO_PREFERENCES_CLICK_TO_RENAME);