[gedit] Window: change default_location -> file_chooser_folder_uri attribute
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] Window: change default_location -> file_chooser_folder_uri attribute
- Date: Sun, 7 Jun 2020 00:54:14 +0000 (UTC)
commit d8eb78ee6cfe1222976d5cab33297d38957f86bc
Author: Sébastien Wilmet <swilmet gnome org>
Date: Sun Jun 7 01:26:35 2020 +0200
Window: change default_location -> file_chooser_folder_uri attribute
The GTK 3 GtkFileChooser API recommends to use the current folder *uri*,
not the GFile. So as a first step, store the file_chooser_folder_uri.
The GeditWindow (private) API will be changed later accordingly.
gedit/gedit-window-private.h | 2 +-
gedit/gedit-window.c | 25 +++++++++++++++----------
2 files changed, 16 insertions(+), 11 deletions(-)
---
diff --git a/gedit/gedit-window-private.h b/gedit/gedit-window-private.h
index 5b30ac053..60f8ba706 100644
--- a/gedit/gedit-window-private.h
+++ b/gedit/gedit-window-private.h
@@ -100,7 +100,7 @@ struct _GeditWindowPrivate
GtkWindowGroup *window_group;
- GFile *default_location;
+ gchar *file_chooser_folder_uri;
gchar *direct_save_uri;
diff --git a/gedit/gedit-window.c b/gedit/gedit-window.c
index 44da898fd..ac502fd0c 100644
--- a/gedit/gedit-window.c
+++ b/gedit/gedit-window.c
@@ -210,7 +210,6 @@ gedit_window_dispose (GObject *object)
g_clear_object (&window->priv->message_bus);
g_clear_object (&window->priv->window_group);
- g_clear_object (&window->priv->default_location);
/* We must free the settings after saving the panels */
g_clear_object (&window->priv->editor_settings);
@@ -243,6 +242,7 @@ gedit_window_finalize (GObject *object)
{
GeditWindow *window = GEDIT_WINDOW (object);
+ g_free (window->priv->file_chooser_folder_uri);
g_slist_free_full (window->priv->closed_docs_stack, (GDestroyNotify)g_object_unref);
G_OBJECT_CLASS (gedit_window_parent_class)->finalize (object);
@@ -3385,26 +3385,31 @@ _gedit_window_get_default_location (GeditWindow *window)
{
g_return_val_if_fail (GEDIT_IS_WINDOW (window), NULL);
- return window->priv->default_location != NULL ?
- g_object_ref (window->priv->default_location) : NULL;
+ if (window->priv->file_chooser_folder_uri == NULL)
+ {
+ return NULL;
+ }
+
+ return g_file_new_for_uri (window->priv->file_chooser_folder_uri);
}
void
_gedit_window_set_default_location (GeditWindow *window,
GFile *location)
{
- GFile *dir;
+ GFile *folder;
g_return_if_fail (GEDIT_IS_WINDOW (window));
g_return_if_fail (G_IS_FILE (location));
- dir = g_file_get_parent (location);
- g_return_if_fail (dir != NULL);
-
- if (window->priv->default_location != NULL)
- g_object_unref (window->priv->default_location);
+ folder = g_file_get_parent (location);
+ if (folder != NULL)
+ {
+ g_free (window->priv->file_chooser_folder_uri);
+ window->priv->file_chooser_folder_uri = g_file_get_uri (folder);
- window->priv->default_location = dir;
+ g_object_unref (folder);
+ }
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]