]> www.fi.muni.cz Git - evince.git/commitdiff
Save last uri in file chooser dialog. Fix for the bug #327950.
authorNickolay V. Shmyrev <nshmyrev@src.gnome.org>
Sat, 21 Jan 2006 19:17:11 +0000 (19:17 +0000)
committerNickolay V. Shmyrev <nshmyrev@src.gnome.org>
Sat, 21 Jan 2006 19:17:11 +0000 (19:17 +0000)
* shell/ev-application.c: (ev_application_shutdown),
(ev_application_set_chooser_uri), (ev_application_get_chooser_uri):
* shell/ev-application.h:
* shell/ev-window.c: (file_open_dialog_response_cb),
(ev_window_cmd_file_open):

Save last uri in file chooser dialog. Fix for the bug #327950.

ChangeLog
shell/ev-application.c
shell/ev-application.h
shell/ev-window.c

index ac98d2b13d18b8e8f41e8c3858649642683250c8..12d565950fd76dfd67ad2874b78e43ae8a3f8ca4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2006-01-21  Nickolay V. Shmyrev  <nshmyrev@yandex.ru>
+
+       * shell/ev-application.c: (ev_application_shutdown),
+       (ev_application_set_chooser_uri), (ev_application_get_chooser_uri):
+       * shell/ev-application.h:
+       * shell/ev-window.c: (file_open_dialog_response_cb),
+       (ev_window_cmd_file_open):
+       
+       Save last uri in file chooser dialog. Fix for the bug #327950.
+
 2006-01-20  Nickolay V. Shmyrev  <nshmyrev@yandex.ru>
 
        * NEWS:
index e633ce43d0ba2270395d02a5f15a3b5155cd2b33..8802f68af267271bb3324a7605353565ba1cc481 100644 (file)
@@ -304,7 +304,9 @@ ev_application_shutdown (EvApplication *application)
                application->recent_model = NULL;
        }
 
+       g_free (application->last_chooser_uri);
        g_object_unref (application);
+       
        gtk_main_quit ();
 }
 
@@ -376,4 +378,14 @@ void ev_application_save_toolbars_model (EvApplication *application)
                                 application->toolbars_file, "1.0");
 }
 
+void ev_application_set_chooser_uri (EvApplication *application, gchar *uri)
+{
+       g_free (application->last_chooser_uri);
+       application->last_chooser_uri = g_strdup (uri);
+}
+
+const gchar* ev_application_get_chooser_uri (EvApplication *application)
+{
+       return application->last_chooser_uri;
+}
 
index 8dcd2f7cc5869baddb36ef86a2748148a5f30444..bad967dae86f18423d54265a5ff391f033586082 100644 (file)
@@ -53,6 +53,8 @@ struct _EvApplication {
        
        EggToolbarsModel *toolbars_model;
        EggRecentModel  *recent_model;
+       
+       gchar *last_chooser_uri;
 };
 
 struct _EvApplicationClass {
@@ -81,6 +83,9 @@ GList          *ev_application_get_windows         (EvApplication   *application);
 EggToolbarsModel *ev_application_get_toolbars_model  (EvApplication   *application);
 void              ev_application_save_toolbars_model (EvApplication   *application);
 EggRecentModel   *ev_application_get_recent_model    (EvApplication   *application);
+void             ev_application_set_chooser_uri     (EvApplication *application, 
+                                                     gchar *uri);
+const gchar     *ev_application_get_chooser_uri     (EvApplication *application);
 
 G_END_DECLS
 
index 7e6a1bc925d7efcf78979b2a1e55d18d7c0b54d9..a3a4457d8e8ed7b0488b19aa93fcb3e68f56c469 100644 (file)
@@ -1093,6 +1093,8 @@ file_open_dialog_response_cb (GtkWidget *chooser,
                g_slist_foreach (uris, (GFunc)g_free, NULL);    
                g_slist_free (uris);
        }
+       ev_application_set_chooser_uri (EV_APP, 
+                                       gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (chooser)));
 
        gtk_widget_destroy (chooser);
 }
@@ -1113,7 +1115,10 @@ ev_window_cmd_file_open (GtkAction *action, EvWindow *window)
        ev_document_types_add_filters (chooser, NULL);
        gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (chooser), TRUE);
        gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (chooser), FALSE);
-
+       if (ev_application_get_chooser_uri (EV_APP) != NULL)
+               gtk_file_chooser_set_uri (GTK_FILE_CHOOSER (chooser),
+                                         ev_application_get_chooser_uri (EV_APP));
+       
        g_signal_connect (chooser, "response",
                          G_CALLBACK (file_open_dialog_response_cb),
                          window);