]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-window.c
Allow build from different dir
[evince.git] / shell / ev-window.c
index 5424c6a2e01a5b96c6b98088b7ca4af9d69191bc..944a469663bf25a9c4a4255c8f4e2175b997b8d1 100644 (file)
@@ -37,7 +37,6 @@
 #include "ev-view.h"
 #include "ev-password.h"
 #include "ev-password-view.h"
 #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"
 #include "ev-properties-dialog.h"
 #include "ev-ps-exporter.h"
 #include "ev-document-thumbnails.h"
 #include "ev-utils.h"
 #include "ev-debug.h"
 
 #include "ev-utils.h"
 #include "ev-debug.h"
 
+#ifdef WITH_GNOME_PRINT
+#include "ev-print-job.h"
+#include <libgnomeprintui/gnome-print-dialog.h>
+#endif
+
 #include <poppler.h>
 
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 #include <gnome.h>
 #include <poppler.h>
 
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 #include <gnome.h>
-#include <libgnomeprintui/gnome-print-dialog.h>
 #include <libgnomevfs/gnome-vfs-utils.h>
 #include <gconf/gconf-client.h>
 
 #include <libgnomevfs/gnome-vfs-utils.h>
 #include <gconf/gconf-client.h>
 
@@ -108,7 +111,9 @@ struct _EvWindowPrivate {
 
        /* Dialogs */
        GtkWidget *properties;
 
        /* Dialogs */
        GtkWidget *properties;
+#ifdef WITH_GNOME_PRINT
        GtkWidget *print_dialog;
        GtkWidget *print_dialog;
+#endif
        GtkWidget *password_dialog;
 
        /* UI Builders */
        GtkWidget *password_dialog;
 
        /* UI Builders */
@@ -139,7 +144,9 @@ struct _EvWindowPrivate {
        /* Job used to load document */
        EvJob *xfer_job;
        EvJob *load_job;
        /* Job used to load document */
        EvJob *xfer_job;
        EvJob *load_job;
+#ifdef WITH_GNOME_PRINT
        GnomePrintJob *print_job;
        GnomePrintJob *print_job;
+#endif
 };
 
 static const GtkTargetEntry ev_drop_types[] = {
 };
 
 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);
        }
        
                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);
        /* 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)
 {
 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)
 {
 }
 
 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
 }
 
 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;
 
                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;
        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);
 
        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);
 
        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);
        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);
 
        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);
        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)
 {
 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;
 }
        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)
        
 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
 #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)) {
 
        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,
 static void
 zoom_control_changed_cb (EphyZoomAction *action,
                         float           zoom,
@@ -2895,7 +2922,7 @@ static const GtkToggleActionEntry toggle_entries[] = {
        { "ViewToolbar", NULL, N_("_Toolbar"), "<shift><control>T",
          N_("Show or hide the toolbar"),
          G_CALLBACK (ev_window_view_toolbar_cb), TRUE },
        { "ViewToolbar", NULL, N_("_Toolbar"), "<shift><control>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,
          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);
                          "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,
 
        /* Popups */
        ev_window->priv->popup = gtk_ui_manager_get_widget (ev_window->priv->ui_manager,