X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=shell%2Fev-application.c;h=05f86ce85bc8df5308d022d55ece7f33b6979e3a;hb=ff47948e26ca64f7f4897299a38858594ce39ed0;hp=632ec373d2a7c9704818d3ccdb0df51c18e41aa9;hpb=7830a9deff653853c523c538494a700b65f69a43;p=evince.git diff --git a/shell/ev-application.c b/shell/ev-application.c index 632ec373..05f86ce8 100644 --- a/shell/ev-application.c +++ b/shell/ev-application.c @@ -28,9 +28,10 @@ #include #include #include -#include +#include +#include -#include +#include "ev-window.h" struct _EvApplicationPrivate { GList *windows; @@ -66,7 +67,7 @@ window_destroy_cb (GtkObject *object, gpointer user_data) g_list_remove (application->priv->windows, object); if (application->priv->windows == NULL) - bonobo_main_quit (); + gtk_main_quit (); } EvWindow * @@ -115,8 +116,7 @@ ev_application_open (EvApplication *application, GError *err) { EvWindow *ev_window; GtkWidget *chooser; - GtkFileFilter *both_filter, *pdf_filter, *ps_filter, *all_filter; - + GtkFileFilter *both_filter, *pdf_filter, *ps_filter, *pixbuf_filter, *all_filter; ev_window = ev_application_get_empty_window (application); @@ -145,11 +145,16 @@ ev_application_open (EvApplication *application, GError *err) gtk_file_filter_add_mime_type (pdf_filter, "application/pdf"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), pdf_filter); + 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); + 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), both_filter); if (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_OK) { @@ -164,6 +169,30 @@ ev_application_open (EvApplication *application, GError *err) gtk_widget_destroy (GTK_WIDGET (chooser)); } +void +ev_application_open_link (EvApplication *application, + EvWindow *window, + EvLink *link, + GError *error) +{ + EvLinkType type; + const char *uri; + + type = ev_link_get_link_type (link); + + switch (type) { + case EV_LINK_TYPE_TITLE: + break; + case EV_LINK_TYPE_PAGE: + ev_window_open_link (window, link); + break; + case EV_LINK_TYPE_EXTERNAL_URI: + uri = ev_link_get_uri (link); + gnome_vfs_url_show (uri); + break; + } +} + static void ev_application_class_init (EvApplicationClass *ev_application_class) {