Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-application.c
diff options
context:
space:
mode:
authorNickolay V. Shmyrev <nshmyrev@src.gnome.org>2005-06-23 14:23:20 (GMT)
committer Nickolay V. Shmyrev <nshmyrev@src.gnome.org>2005-06-23 14:23:20 (GMT)
commitbe84d325e18241a7e33ffa07cfce58bb8b54794b (patch)
treeb5d9cacd5c4eb880e57b43270d0339e6ffd6e3d5 /shell/ev-application.c
parent388b352dd76c2f70fb69e767f5ce51c1caec7645 (diff)
Fix for bug 308402 - provide templates in Save dialog
Diffstat (limited to 'shell/ev-application.c')
-rw-r--r--shell/ev-application.c82
1 files changed, 12 insertions, 70 deletions
diff --git a/shell/ev-application.c b/shell/ev-application.c
index 3b162ce..ef478e0 100644
--- a/shell/ev-application.c
+++ b/shell/ev-application.c
@@ -25,6 +25,8 @@
#endif
#include "ev-application.h"
+#include "ev-utils.h"
+#include "ev-document-types.h"
#include <glib.h>
#include <glib/gi18n.h>
@@ -117,18 +119,7 @@ ev_application_open (EvApplication *application, GError *err)
{
EvWindow *ev_window;
GtkWidget *chooser;
- GtkFileFilter *documents_filter;
- GtkFileFilter *pdf_filter;
- GtkFileFilter *ps_filter;
- GtkFileFilter *pixbuf_filter;
- GtkFileFilter *all_filter;
- static gchar *folder = NULL;
-#ifdef ENABLE_DJVU
- GtkFileFilter *djvu_filter;
-#endif
-#ifdef ENABLE_DVI
- GtkFileFilter *dvi_filter;
-#endif
+ static char *folder = NULL;
ev_window = ev_application_get_empty_window (application);
@@ -141,64 +132,11 @@ ev_application_open (EvApplication *application, GError *err)
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"));
- gtk_file_filter_add_mime_type (documents_filter, "application/postscript");
- gtk_file_filter_add_mime_type (documents_filter, "application/x-gzpostscript");
- gtk_file_filter_add_mime_type (documents_filter, "image/x-eps");
- gtk_file_filter_add_mime_type (documents_filter, "application/pdf");
-#ifdef ENABLE_DVI
- gtk_file_filter_add_mime_type (documents_filter, "application/x-dvi");
-#endif
- gtk_file_filter_add_pixbuf_formats (documents_filter);
-#ifdef ENABLE_DJVU
- gtk_file_filter_add_mime_type (documents_filter, "image/vnd.djvu");
-#endif
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), documents_filter);
-
- ps_filter = gtk_file_filter_new ();
- gtk_file_filter_set_name (ps_filter, _("PostScript Documents"));
- gtk_file_filter_add_mime_type (ps_filter, "application/postscript");
- gtk_file_filter_add_mime_type (ps_filter, "application/x-gzpostscript");
- gtk_file_filter_add_mime_type (ps_filter, "image/x-eps");
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), ps_filter);
-
- pdf_filter = gtk_file_filter_new ();
- gtk_file_filter_set_name (pdf_filter, _("PDF Documents"));
- gtk_file_filter_add_mime_type (pdf_filter, "application/pdf");
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), pdf_filter);
-
-#ifdef ENABLE_DVI
- dvi_filter = gtk_file_filter_new ();
- gtk_file_filter_set_name (dvi_filter, _("DVI Documents"));
- gtk_file_filter_add_mime_type (dvi_filter, "application/x-dvi");
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), dvi_filter);
-#endif
-
- pixbuf_filter = gtk_file_filter_new ();
- gtk_file_filter_set_name (pixbuf_filter, _("Images"));
- gtk_file_filter_add_pixbuf_formats (pixbuf_filter);
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), pixbuf_filter);
-
-#ifdef ENABLE_DJVU
- djvu_filter = gtk_file_filter_new ();
- gtk_file_filter_set_name (djvu_filter, _("Djvu Documents"));
- gtk_file_filter_add_mime_type (djvu_filter, "image/vnd.djvu");
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), djvu_filter);
-#endif
-
- 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_current_folder_uri (GTK_FILE_CHOOSER (chooser),
+ folder);
+ }
+ ev_document_types_add_filters (chooser);
gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (chooser), TRUE);
gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (chooser), FALSE);
@@ -206,7 +144,11 @@ ev_application_open (EvApplication *application, GError *err)
GSList *uris;
uris = gtk_file_chooser_get_uris (GTK_FILE_CHOOSER (chooser));
- folder = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (chooser));
+
+ if (folder != NULL)
+ g_free (folder);
+
+ folder = gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (chooser));
ev_window_open_uri_list (ev_window, uris);