[gedit] Window: better remember FileChooser's folders
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] Window: better remember FileChooser's folders
- Date: Sun, 7 Jun 2020 02:07:28 +0000 (UTC)
commit 4491a5a395d08391b8523b2d826075226e1dec6c
Author: Sébastien Wilmet <swilmet gnome org>
Date: Sun Jun 7 03:41:58 2020 +0200
Window: better remember FileChooser's folders
Especially if files are opened from the FileChooser's Recent list.
gedit/gedit-window.c | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
---
diff --git a/gedit/gedit-window.c b/gedit/gedit-window.c
index 747f29d9e..a5ab1ce37 100644
--- a/gedit/gedit-window.c
+++ b/gedit/gedit-window.c
@@ -3388,6 +3388,21 @@ _gedit_window_get_file_chooser_folder_uri (GeditWindow *window,
g_return_val_if_fail ((action == GTK_FILE_CHOOSER_ACTION_OPEN) ||
(action == GTK_FILE_CHOOSER_ACTION_SAVE), NULL);
+ if (action == GTK_FILE_CHOOSER_ACTION_OPEN)
+ {
+ GeditSettings *settings;
+ GSettings *file_chooser_state_settings;
+
+ settings = _gedit_settings_get_singleton ();
+ file_chooser_state_settings = _gedit_settings_peek_file_chooser_state_settings (settings);
+
+ if (g_settings_get_boolean (file_chooser_state_settings,
+ GEDIT_SETTINGS_FILE_CHOOSER_OPEN_RECENT))
+ {
+ return NULL;
+ }
+ }
+
return window->priv->file_chooser_folder_uri;
}
@@ -3400,6 +3415,28 @@ _gedit_window_set_file_chooser_folder_uri (GeditWindow *window,
g_return_if_fail ((action == GTK_FILE_CHOOSER_ACTION_OPEN) ||
(action == GTK_FILE_CHOOSER_ACTION_SAVE));
+ if (action == GTK_FILE_CHOOSER_ACTION_OPEN)
+ {
+ GeditSettings *settings;
+ GSettings *file_chooser_state_settings;
+ gboolean open_recent = folder_uri == NULL;
+
+ settings = _gedit_settings_get_singleton ();
+ file_chooser_state_settings = _gedit_settings_peek_file_chooser_state_settings (settings);
+
+ g_settings_set_boolean (file_chooser_state_settings,
+ GEDIT_SETTINGS_FILE_CHOOSER_OPEN_RECENT,
+ open_recent);
+
+ if (open_recent)
+ {
+ /* Do not set window->priv->file_chooser_folder_uri to
+ * NULL, to not lose the folder for the Save action.
+ */
+ return;
+ }
+ }
+
g_free (window->priv->file_chooser_folder_uri);
window->priv->file_chooser_folder_uri = g_strdup (folder_uri);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]