[gedit/zbrown/deteplification-src: 389/633] Window: change default_location -> file_chooser_folder_uri attribute
- From: Zander Brown <zbrown src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit/zbrown/deteplification-src: 389/633] Window: change default_location -> file_chooser_folder_uri attribute
- Date: Sat, 10 Apr 2021 12:48:04 +0000 (UTC)
commit 3769d41eeb9ed10afc47e26c74def67c120fc391
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 97b8f0d7a..380f6bdc5 100644
--- a/gedit/gedit-window-private.h
+++ b/gedit/gedit-window-private.h
@@ -107,7 +107,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 e84a2918f..f0fcf255f 100644
--- a/gedit/gedit-window.c
+++ b/gedit/gedit-window.c
@@ -215,7 +215,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);
@@ -246,6 +245,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);
@@ -3434,26 +3434,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]