]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-application.c
remove the locale.h include again ;-). And kill the (bogus)
[evince.git] / shell / ev-application.c
index e24e8238e7ead84a834814021c85a0eb09420275..3b162ce0faebbe63fe4e4c5a99fcd1e1f2a3e597 100644 (file)
@@ -122,6 +122,7 @@ ev_application_open (EvApplication *application, GError *err)
        GtkFileFilter *ps_filter;
        GtkFileFilter *pixbuf_filter;
        GtkFileFilter *all_filter;
+       static gchar  *folder = NULL;
 #ifdef ENABLE_DJVU
        GtkFileFilter *djvu_filter;
 #endif
@@ -139,6 +140,11 @@ ev_application_open (EvApplication *application, GError *err)
                                               GTK_STOCK_OPEN, GTK_RESPONSE_OK,
                                               NULL);
 
+       if (folder) {
+               gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (chooser),
+                                                    folder);
+       }
+
        documents_filter = gtk_file_filter_new ();
        gtk_file_filter_set_name (documents_filter,
                                  _("All Documents"));
@@ -189,17 +195,25 @@ ev_application_open (EvApplication *application, GError *err)
        all_filter = gtk_file_filter_new ();
        gtk_file_filter_set_name (all_filter, _("All Files"));
        gtk_file_filter_add_pattern (all_filter, "*");
+
        gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), all_filter);
-       
        gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (chooser), documents_filter);
 
+       gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (chooser), TRUE);
+       gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (chooser), FALSE);
+
        if (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_OK) {
-               char *uri;
+               GSList *uris;
+
+               uris = gtk_file_chooser_get_uris (GTK_FILE_CHOOSER (chooser));
+               folder = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (chooser));
 
-               uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (chooser));
-               ev_window_open (ev_window, uri);
-               gtk_widget_show (GTK_WIDGET (ev_window));
-               g_free (uri);
+               ev_window_open_uri_list (ev_window, uris);
+               
+               g_slist_free (uris);
+       } else {
+               if (!GTK_WIDGET_VISIBLE (ev_window))
+                       gtk_widget_destroy (GTK_WIDGET (ev_window));
        }
 
        gtk_widget_destroy (GTK_WIDGET (chooser));