X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-window.c;h=944a469663bf25a9c4a4255c8f4e2175b997b8d1;hb=a61c4406e2cd4dc8f2d3a981e73dc09ae21e6ece;hp=5424c6a2e01a5b96c6b98088b7ca4af9d69191bc;hpb=fb037eb2a0842976deddd8df6793ed642eea5674;p=evince.git diff --git a/shell/ev-window.c b/shell/ev-window.c index 5424c6a2..944a4696 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -37,7 +37,6 @@ #include "ev-view.h" #include "ev-password.h" #include "ev-password-view.h" -#include "ev-print-job.h" #include "ev-properties-dialog.h" #include "ev-ps-exporter.h" #include "ev-document-thumbnails.h" @@ -65,12 +64,16 @@ #include "ev-utils.h" #include "ev-debug.h" +#ifdef WITH_GNOME_PRINT +#include "ev-print-job.h" +#include +#endif + #include #include #include #include -#include #include #include @@ -108,7 +111,9 @@ struct _EvWindowPrivate { /* Dialogs */ GtkWidget *properties; +#ifdef WITH_GNOME_PRINT GtkWidget *print_dialog; +#endif GtkWidget *password_dialog; /* UI Builders */ @@ -139,7 +144,9 @@ struct _EvWindowPrivate { /* Job used to load document */ EvJob *xfer_job; EvJob *load_job; +#ifdef WITH_GNOME_PRINT GnomePrintJob *print_job; +#endif }; static const GtkTargetEntry ev_drop_types[] = { @@ -275,6 +282,10 @@ update_action_sensitivity (EvWindow *ev_window) ok_to_copy_text = ev_view_get_has_selection (view); } +#ifndef WITH_GNOME_PRINT + ok_to_print = FALSE; +#endif + /* File menu */ /* "FileOpen": always sensitive */ set_action_sensitive (ev_window, "FileSaveAs", has_document && ok_to_copy); @@ -471,13 +482,13 @@ ev_window_cmd_focus_page_selector (GtkAction *act, EvWindow *window) static void ev_window_cmd_scroll_forward (GtkAction *action, EvWindow *window) { - ev_view_scroll (EV_VIEW (window->priv->view), EV_SCROLL_PAGE_FORWARD); + ev_view_scroll (EV_VIEW (window->priv->view), EV_SCROLL_PAGE_FORWARD, FALSE); } static void ev_window_cmd_scroll_backward (GtkAction *action, EvWindow *window) { - ev_view_scroll (EV_VIEW (window->priv->view), EV_SCROLL_PAGE_BACKWARD); + ev_view_scroll (EV_VIEW (window->priv->view), EV_SCROLL_PAGE_BACKWARD, FALSE); } static void @@ -1047,12 +1058,14 @@ ev_window_close_dialogs (EvWindow *ev_window) gtk_widget_destroy (ev_window->priv->password_dialog); ev_window->priv->password_dialog = NULL; +#ifdef WITH_GNOME_PRINT if (ev_window->priv->print_dialog) { gtk_widget_destroy (ev_window->priv->print_dialog); g_object_unref (ev_window->priv->print_job); } ev_window->priv->print_dialog = NULL; ev_window->priv->print_job = NULL; +#endif if (ev_window->priv->properties) gtk_widget_destroy (ev_window->priv->properties); @@ -1238,7 +1251,10 @@ ev_window_cmd_save_as (GtkAction *action, EvWindow *ev_window) ev_document_types_add_filters (fc, ev_window->priv->document); gtk_dialog_set_default_response (GTK_DIALOG (fc), GTK_RESPONSE_OK); - + +#ifdef HAVE_GTK_FILE_CHOOSER_SET_DO_OVERWRITE_CONFIRMATION + gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER (fc), TRUE); +#endif file_name = gnome_vfs_format_uri_for_display (ev_window->priv->uri); base_name = g_path_get_basename (file_name); gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (fc), base_name); @@ -1261,10 +1277,13 @@ ev_window_print (EvWindow *window) page_cache = ev_page_cache_get (window->priv->document); last_page = ev_page_cache_get_n_pages (page_cache); +#ifdef WITH_GNOME_PRINT ev_window_print_range (window, 1, last_page); +#endif } +#ifdef WITH_GNOME_PRINT static gboolean ev_window_print_dialog_response_cb (GtkDialog *print_dialog, gint response, gpointer data) { @@ -1368,6 +1387,7 @@ ev_window_print_range (EvWindow *ev_window, int first_page, int last_page) gtk_widget_show (ev_window->priv->print_dialog); return; } +#endif /* WITH_GNOME_PRINT */ static void ev_window_cmd_file_print (GtkAction *action, EvWindow *ev_window) @@ -2601,6 +2621,7 @@ find_bar_search_changed_cb (EggFindBar *find_bar, #if 0 g_printerr ("search for '%s'\n", search_string ? search_string : "(nil)"); #endif + ev_view_search_changed (EV_VIEW(ev_window->priv->view)); if (ev_window->priv->document && EV_IS_DOCUMENT_FIND (ev_window->priv->document)) { @@ -2624,6 +2645,12 @@ find_bar_search_changed_cb (EggFindBar *find_bar, } } +static void +find_bar_scroll(EggFindBar *find_bar, GtkScrollType scroll, EvWindow* ev_window) +{ + ev_view_scroll(EV_VIEW(ev_window->priv->view), scroll, FALSE); +} + static void zoom_control_changed_cb (EphyZoomAction *action, float zoom, @@ -2895,7 +2922,7 @@ static const GtkToggleActionEntry toggle_entries[] = { { "ViewToolbar", NULL, N_("_Toolbar"), "T", N_("Show or hide the toolbar"), G_CALLBACK (ev_window_view_toolbar_cb), TRUE }, - { "ViewSidebar", NULL, N_("Side _Pane"), "F9", + { "ViewSidebar", GTK_STOCK_INDEX, N_("Side _Pane"), "F9", N_("Show or hide the side pane"), G_CALLBACK (ev_window_view_sidebar_cb), TRUE }, { "ViewContinuous", EV_STOCK_VIEW_CONTINUOUS, N_("_Continuous"), NULL, @@ -3501,6 +3528,10 @@ ev_window_init (EvWindow *ev_window) "notify::visible", G_CALLBACK (find_bar_search_changed_cb), ev_window); + g_signal_connect (ev_window->priv->find_bar, + "scroll", + G_CALLBACK (find_bar_scroll), + ev_window); /* Popups */ ev_window->priv->popup = gtk_ui_manager_get_widget (ev_window->priv->ui_manager,