From 00ddb3cc9b9fe84e64b519eb1c1a74b5645856ae Mon Sep 17 00:00:00 2001 From: Marc Schink Date: Tue, 1 Sep 2015 17:43:36 +0200 Subject: [PATCH] Remember last location in save-copy dialog. The save-copy dialog now uses the location where the last copy of an image was stored as default location. --- src/main_window.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/main_window.c b/src/main_window.c index c743b29..38db54c 100644 --- a/src/main_window.c +++ b/src/main_window.c @@ -131,6 +131,8 @@ struct _RsttoMainWindowPriv gint play_timeout_id; GtkFileFilter *filter; + + gchar *last_copy_folder_uri; }; enum @@ -773,6 +775,8 @@ rstto_main_window_init (RsttoMainWindow *window) window->priv->settings_manager = rstto_settings_new(); window->priv->thumbnailer = rstto_thumbnailer_new(); + window->priv->last_copy_folder_uri = NULL; + /* Setup the image filter list for drag and drop */ window->priv->filter = gtk_file_filter_new (); g_object_ref_sink (window->priv->filter); @@ -1181,6 +1185,13 @@ rstto_main_window_dispose(GObject *object) g_object_unref (window->priv->thumbnailer); window->priv->thumbnailer = NULL; } + + if (window->priv->last_copy_folder_uri) + { + g_free (window->priv->last_copy_folder_uri); + window->priv->last_copy_folder_uri = NULL; + } + g_free (window->priv); window->priv = NULL; } @@ -3152,6 +3163,11 @@ cb_rstto_main_window_save_copy (GtkWidget *widget, RsttoMainWindow *window) GTK_STOCK_SAVE, GTK_RESPONSE_OK, NULL); gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE); + + if (window->priv->last_copy_folder_uri) + gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (dialog), + window->priv->last_copy_folder_uri); + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), rstto_file_get_display_name (r_file)); @@ -3177,6 +3193,10 @@ cb_rstto_main_window_save_copy (GtkWidget *widget, RsttoMainWindow *window) gtk_dialog_run(GTK_DIALOG(err_dialog)); gtk_widget_destroy(err_dialog); } + + g_free (window->priv->last_copy_folder_uri); + window->priv->last_copy_folder_uri = gtk_file_chooser_get_current_folder_uri ( + GTK_FILE_CHOOSER (dialog)); } gtk_widget_destroy(dialog); -- 1.9.1