]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-document-types.c
New CBR/CBZ backend for comic books.
[evince.git] / shell / ev-document-types.c
index d2078c52311fe591423ff6d919be316b1d5efbc8..ea729bfd8b6885eff765fc3e00a5e0b7555a4ecb 100644 (file)
@@ -123,12 +123,13 @@ ev_document_types_add_filters (GtkWidget *chooser, EvDocument *document)
        GList *mime_types;
        GtkFileFilter *filter;
        GtkFileFilter *default_filter;
+       GtkFileFilter *document_filter;
 
        if (document != NULL) {
                backend = ev_document_factory_get_backend (document);
        }
 
-       default_filter = filter = gtk_file_filter_new ();
+       default_filter = document_filter = filter = gtk_file_filter_new ();
        gtk_file_filter_set_name (filter, _("All Documents"));
        mime_types = ev_document_factory_get_all_mime_types ();
        file_filter_add_mime_list_and_free (filter, mime_types);
@@ -151,12 +152,14 @@ ev_document_types_add_filters (GtkWidget *chooser, EvDocument *document)
                gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter);
        }
 
+#ifdef ENABLE_PIXBUF
        if (document == NULL || backend == EV_BACKEND_PIXBUF) {
                default_filter = filter = gtk_file_filter_new ();
                gtk_file_filter_set_name (filter, _("Images"));
                gtk_file_filter_add_pixbuf_formats (filter);
                gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter);
        }
+#endif
 
 #ifdef ENABLE_DVI
        if (document == NULL || backend == EV_BACKEND_DVI) {
@@ -178,10 +181,21 @@ ev_document_types_add_filters (GtkWidget *chooser, EvDocument *document)
        }
 #endif 
 
+#ifdef ENABLE_COMICS
+       if (document == NULL || backend == EV_BACKEND_COMICS) {
+               default_filter = filter = gtk_file_filter_new ();
+               gtk_file_filter_set_name (filter, _("Comics Books"));
+               mime_types = ev_document_factory_get_mime_types (EV_BACKEND_COMICS);
+               file_filter_add_mime_list_and_free (filter, mime_types);
+               gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter);
+       }
+#endif 
+
        filter = gtk_file_filter_new ();
        gtk_file_filter_set_name (filter, _("All Files"));
        gtk_file_filter_add_pattern (filter, "*");
        gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter);
 
-       gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (chooser), default_filter);
+       gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (chooser),
+                                    document == NULL ? document_filter : default_filter);
 }