[gnome-disk-utility] Fix default folder for disk images
- From: David Zeuthen <davidz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-disk-utility] Fix default folder for disk images
- Date: Wed, 14 Aug 2013 03:07:58 +0000 (UTC)
commit a4d5bdcb1ddbbd5650e6f8d99fc71e244f477a5d
Author: David Zeuthen <zeuthen gmail com>
Date: Tue Aug 13 20:06:25 2013 -0700
Fix default folder for disk images
Signed-off-by: David Zeuthen <zeuthen gmail com>
src/disks/gducreatediskimagedialog.c | 2 +-
src/disks/gdurestorediskimagedialog.c | 5 ++++-
src/disks/gduwindow.c | 12 ++++++------
src/libgdu/gduutils.c | 26 +++++++++-----------------
src/libgdu/gduutils.h | 2 +-
5 files changed, 21 insertions(+), 26 deletions(-)
---
diff --git a/src/disks/gducreatediskimagedialog.c b/src/disks/gducreatediskimagedialog.c
index dd7958b..b7cf350 100644
--- a/src/disks/gducreatediskimagedialog.c
+++ b/src/disks/gducreatediskimagedialog.c
@@ -992,7 +992,7 @@ start_copying (DialogData *data)
}
/* now that we know the user picked a folder, update file chooser settings */
- gdu_utils_file_chooser_for_disk_images_update_settings (GTK_FILE_CHOOSER (data->folder_fcbutton));
+ gdu_utils_file_chooser_for_disk_images_set_default_folder (folder);
data->inhibit_cookie = gtk_application_inhibit (GTK_APPLICATION (gdu_window_get_application
(data->window)),
GTK_WINDOW (data->dialog),
diff --git a/src/disks/gdurestorediskimagedialog.c b/src/disks/gdurestorediskimagedialog.c
index 813a84f..7ddf2f7 100644
--- a/src/disks/gdurestorediskimagedialog.c
+++ b/src/disks/gdurestorediskimagedialog.c
@@ -1030,6 +1030,7 @@ on_dialog_response (GtkDialog *dialog,
{
DialogData *data = user_data;
GList *objects = NULL;
+ GFile *folder = NULL;
if (data->dialog == NULL)
goto out;
@@ -1051,7 +1052,8 @@ on_dialog_response (GtkDialog *dialog,
}
/* now that we know the user picked a folder, update file chooser settings */
- gdu_utils_file_chooser_for_disk_images_update_settings (GTK_FILE_CHOOSER
(data->selectable_image_fcbutton));
+ folder = gtk_file_chooser_get_current_folder_file (GTK_FILE_CHOOSER (data->selectable_image_fcbutton));
+ gdu_utils_file_chooser_for_disk_images_set_default_folder (folder);
/* ensure the device is unused (e.g. unmounted) before copying data to it... */
gdu_window_ensure_unused (data->window,
@@ -1068,6 +1070,7 @@ on_dialog_response (GtkDialog *dialog,
}
out:
g_list_free (objects);
+ g_clear_object (&folder);
}
void
diff --git a/src/disks/gduwindow.c b/src/disks/gduwindow.c
index a7fc766..5d30bb4 100644
--- a/src/disks/gduwindow.c
+++ b/src/disks/gduwindow.c
@@ -858,15 +858,13 @@ void
gdu_window_show_attach_disk_image (GduWindow *window)
{
GtkWidget *dialog;
- gchar *filename;
- gint fd;
+ GFile *folder = NULL;
+ gchar *filename = NULL;
+ gint fd = -1;
GUnixFDList *fd_list;
GVariantBuilder options_builder;
GtkWidget *ro_checkbutton;
- filename = NULL;
- fd = -1;
-
dialog = gtk_file_chooser_dialog_new (_("Select Disk Image to Attach"),
GTK_WINDOW (window),
GTK_FILE_CHOOSER_ACTION_OPEN,
@@ -907,7 +905,8 @@ gdu_window_show_attach_disk_image (GduWindow *window)
}
/* now that we know the user picked a folder, update file chooser settings */
- gdu_utils_file_chooser_for_disk_images_update_settings (GTK_FILE_CHOOSER (dialog));
+ folder = gtk_file_chooser_get_current_folder_file (GTK_FILE_CHOOSER (dialog));
+ gdu_utils_file_chooser_for_disk_images_set_default_folder (folder);
g_variant_builder_init (&options_builder, G_VARIANT_TYPE_VARDICT);
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ro_checkbutton)))
@@ -925,6 +924,7 @@ gdu_window_show_attach_disk_image (GduWindow *window)
out:
gtk_widget_destroy (dialog);
g_free (filename);
+ g_clear_object (&folder);
}
/* ---------------------------------------------------------------------------------------------------- */
diff --git a/src/libgdu/gduutils.c b/src/libgdu/gduutils.c
index d6d046f..f18515a 100644
--- a/src/libgdu/gduutils.c
+++ b/src/libgdu/gduutils.c
@@ -115,24 +115,16 @@ gdu_utils_configure_file_chooser_for_disk_images (GtkFileChooser *file_chooser,
/* should be called when user chooses file/dir from @file_chooser */
void
-gdu_utils_file_chooser_for_disk_images_update_settings (GtkFileChooser *file_chooser)
+gdu_utils_file_chooser_for_disk_images_set_default_folder (GFile *folder)
{
- const gchar *orig_folder;
- gchar *cur_folder;
-
- orig_folder = g_object_get_data (G_OBJECT (file_chooser), "x-gdu-orig-folder");
- cur_folder = gtk_file_chooser_get_current_folder_uri (file_chooser);
- /* NOTE: cur_folder may be NULL if e.g. something in "Search" or
- * "Recently Used" is selected... in that case, do not update
- * the GSetting
- */
- if (cur_folder != NULL && g_strcmp0 (orig_folder, cur_folder) != 0)
- {
- GSettings *settings = g_settings_new ("org.gnome.Disks");
- g_settings_set_string (settings, "image-dir-uri", cur_folder);
- g_clear_object (&settings);
- }
- g_free (cur_folder);
+ gchar *folder_uri;
+ GSettings *settings;
+
+ folder_uri = g_file_get_uri (folder);
+ settings = g_settings_new ("org.gnome.Disks");
+ g_settings_set_string (settings, "image-dir-uri", folder_uri);
+ g_clear_object (&settings);
+ g_free (folder_uri);
}
/* ---------------------------------------------------------------------------------------------------- */
diff --git a/src/libgdu/gduutils.h b/src/libgdu/gduutils.h
index c5dcacd..734b61e 100644
--- a/src/libgdu/gduutils.h
+++ b/src/libgdu/gduutils.h
@@ -22,7 +22,7 @@ void gdu_utils_configure_file_chooser_for_disk_images (GtkFileChooser *file_choo
gboolean set_file_types,
gboolean allow_compressed);
-void gdu_utils_file_chooser_for_disk_images_update_settings (GtkFileChooser *file_chooser);
+void gdu_utils_file_chooser_for_disk_images_set_default_folder (GFile *folder);
GtkWidget *gdu_utils_create_info_bar (GtkMessageType message_type,
const gchar *markup,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]