diff options
author | Carlos Garcia Campos <carlosgc@gnome.org> | 2009-05-21 18:10:24 (GMT) |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@gnome.org> | 2009-05-21 18:10:24 (GMT) |
commit | cd072866af05d7a5beadb6534b562a296cd85511 (patch) | |
tree | 747aa2e0b871f5409036990a5f5ddeca122b8972 /shell/ev-application.c | |
parent | 5e2d5f13c109d67fb653f6172b6d3bfc6798dfcf (diff) |
[shell] Remember and reuse "Save a Copy..." path
Fixes bgo#485195.
Diffstat (limited to 'shell/ev-application.c')
-rw-r--r-- | shell/ev-application.c | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/shell/ev-application.c b/shell/ev-application.c index 9c7770a..6a3367f 100644 --- a/shell/ev-application.c +++ b/shell/ev-application.c @@ -68,7 +68,8 @@ struct _EvApplication { EggSMClient *smclient; - gchar *last_chooser_uri; + gchar *filechooser_open_uri; + gchar *filechooser_save_uri; #ifdef ENABLE_DBUS EvMediaPlayerKeys *keys; @@ -786,8 +787,10 @@ ev_application_shutdown (EvApplication *application) g_free (application->dot_dir); application->dot_dir = NULL; - g_free (application->last_chooser_uri); - application->last_chooser_uri = NULL; + g_free (application->filechooser_open_uri); + application->filechooser_open_uri = NULL; + g_free (application->filechooser_save_uri); + application->filechooser_save_uri = NULL; g_object_unref (application); instance = NULL; @@ -924,16 +927,32 @@ ev_application_save_toolbars_model (EvApplication *application) } void -ev_application_set_chooser_uri (EvApplication *application, const gchar *uri) +ev_application_set_filechooser_uri (EvApplication *application, + GtkFileChooserAction action, + const gchar *uri) { - g_free (application->last_chooser_uri); - application->last_chooser_uri = g_strdup (uri); + if (action == GTK_FILE_CHOOSER_ACTION_OPEN) { + g_free (application->filechooser_open_uri); + application->filechooser_open_uri = g_strdup (uri); + } else if (action == GTK_FILE_CHOOSER_ACTION_SAVE) { + g_free (application->filechooser_save_uri); + application->filechooser_save_uri = g_strdup (uri); + } } const gchar * -ev_application_get_chooser_uri (EvApplication *application) +ev_application_get_filechooser_uri (EvApplication *application, + GtkFileChooserAction action) { - return application->last_chooser_uri; + if (action == GTK_FILE_CHOOSER_ACTION_OPEN) { + if (application->filechooser_open_uri) + return application->filechooser_open_uri; + } else if (action == GTK_FILE_CHOOSER_ACTION_SAVE) { + if (application->filechooser_save_uri) + return application->filechooser_save_uri; + } + + return NULL; } void |