]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-window.c
Return 0 results when search is not in progress.
[evince.git] / shell / ev-window.c
index c8e5ac9ffd7ab846175adf34f0f00437d8d0e6f4..47ee1e89aca27f4132e7173e4cb3eb90f6efee60 100644 (file)
@@ -602,6 +602,18 @@ update_document_mode (EvWindow *window, EvDocumentMode mode)
        }
 }
 
+static void
+update_sidebar_visibility (EvWindow *window)
+{
+       char *uri = window->priv->uri;
+       GValue sidebar_visibility = { 0, };
+
+       if (uri && ev_metadata_manager_get (uri, "sidebar_visibility", &sidebar_visibility)) {
+               set_widget_visibility (window->priv->sidebar,
+                                      g_value_get_boolean (&sidebar_visibility));
+       }
+}
+
 static void
 setup_document_from_metadata (EvWindow *window)
 {
@@ -615,6 +627,40 @@ setup_document_from_metadata (EvWindow *window)
        }
 }
 
+static void
+setup_sidebar_from_metadata (EvWindow *window, EvDocument *document)
+{
+       char *uri = window->priv->uri;
+       GtkWidget *sidebar = window->priv->sidebar;
+       GtkWidget *links = window->priv->sidebar_links;
+       GtkWidget *thumbs = window->priv->sidebar_thumbs;
+       GValue sidebar_size = { 0, };
+       GValue sidebar_page = { 0, };
+
+       if (ev_metadata_manager_get (uri, "sidebar_size", &sidebar_size)) {
+               gtk_paned_set_position (GTK_PANED (window->priv->hpaned),
+                                       g_value_get_int (&sidebar_size));
+       }
+
+       if (ev_metadata_manager_get (uri, "sidebar_page", &sidebar_page)) {
+               const char *page_id = g_value_get_string (&sidebar_page);
+
+               if (strcmp (page_id, "links") == 0) {
+                       ev_sidebar_set_page (EV_SIDEBAR (sidebar), links);
+               } else if (strcmp (page_id, "thumbnails")) {
+                       ev_sidebar_set_page (EV_SIDEBAR (sidebar), thumbs);
+               }
+       } else {
+               if (ev_sidebar_page_support_document (EV_SIDEBAR_PAGE (links), document)) {
+                       ev_sidebar_set_page (EV_SIDEBAR (sidebar), links);
+               } else if (ev_sidebar_page_support_document (EV_SIDEBAR_PAGE (thumbs), document)) {
+                       ev_sidebar_set_page (EV_SIDEBAR (sidebar), thumbs);
+               }
+       }
+
+       update_sidebar_visibility (window);
+}
+
 static void
 ev_window_setup_document (EvWindow *ev_window)
 {
@@ -657,6 +703,7 @@ ev_window_setup_document (EvWindow *ev_window)
        }
 
        setup_document_from_metadata (ev_window);
+       setup_sidebar_from_metadata (ev_window, document);
 }
 
 static void
@@ -875,18 +922,6 @@ ev_window_xfer_job_cb  (EvJobXfer *job,
        }               
 }
 
-static void
-update_sidebar_visibility (EvWindow *window)
-{
-       char *uri = window->priv->uri;
-       GValue sidebar_visibility = { 0, };
-
-       if (uri && ev_metadata_manager_get (uri, "sidebar_visibility", &sidebar_visibility)) {
-               set_widget_visibility (window->priv->sidebar,
-                                      g_value_get_boolean (&sidebar_visibility));
-       }
-}
-
 static void
 setup_view_from_metadata (EvWindow *window)
 {
@@ -905,8 +940,6 @@ setup_view_from_metadata (EvWindow *window)
        GValue presentation = { 0, };
        GValue fullscreen = { 0, };
        GValue rotation = { 0, };
-       GValue sidebar_size = { 0, };
-       GValue sidebar_page = { 0, };
 
        if (window->priv->uri == NULL) {
                return;
@@ -992,26 +1025,6 @@ setup_view_from_metadata (EvWindow *window)
                        }
                }
        }
-
-       /* Sidebar */
-       if (ev_metadata_manager_get (uri, "sidebar_size", &sidebar_size)) {
-               gtk_paned_set_position (GTK_PANED (window->priv->hpaned),
-                                       g_value_get_int (&sidebar_size));
-       }
-
-       if (ev_metadata_manager_get (uri, "sidebar_page", &sidebar_page)) {
-               const char *page_id = g_value_get_string (&sidebar_page);
-
-               if (strcmp (page_id, "links") == 0) {
-                       ev_sidebar_set_page (EV_SIDEBAR (window->priv->sidebar),
-                                            window->priv->sidebar_links);
-               } else if (strcmp (page_id, "thumbnails")) {
-                       ev_sidebar_set_page (EV_SIDEBAR (window->priv->sidebar),
-                                            window->priv->sidebar_thumbs);
-               }
-       }
-
-       update_sidebar_visibility (window);
 }
 
 void
@@ -2070,6 +2083,7 @@ ev_window_cmd_edit_toolbar (GtkAction *action, EvWindow *ev_window)
                                              GTK_STOCK_CLOSE,
                                              GTK_RESPONSE_CLOSE, 
                                              NULL);
+       gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CLOSE);
        gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)), 5);
        gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 2);
        gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);
@@ -2116,7 +2130,7 @@ ev_window_cmd_go_previous_page (GtkAction *action, EvWindow *ev_window)
 {
         g_return_if_fail (EV_IS_WINDOW (ev_window));
 
-       ev_page_cache_prev_page (ev_window->priv->page_cache);
+       ev_view_previous_page (EV_VIEW (ev_window->priv->view));
 }
 
 static void
@@ -2124,7 +2138,7 @@ ev_window_cmd_go_next_page (GtkAction *action, EvWindow *ev_window)
 {
         g_return_if_fail (EV_IS_WINDOW (ev_window));
 
-       ev_page_cache_next_page (ev_window->priv->page_cache);
+       ev_view_next_page (EV_VIEW (ev_window->priv->view));
 }
 
 static void
@@ -2642,6 +2656,7 @@ find_bar_search_changed_cb (EggFindBar *find_bar,
                        ev_document_find_cancel (EV_DOCUMENT_FIND (ev_window->priv->document));
                        ev_document_doc_mutex_unlock ();
 
+                       update_action_sensitivity (ev_window);
                        egg_find_bar_set_status_text (EGG_FIND_BAR (ev_window->priv->find_bar),
                                                      NULL);
                        gtk_widget_queue_draw (GTK_WIDGET (ev_window->priv->view));
@@ -2815,40 +2830,31 @@ static const GtkActionEntry entries[] = {
        { "FileOpen", GTK_STOCK_OPEN, N_("_Open..."), "<control>O",
          N_("Open an existing document"),
          G_CALLBACK (ev_window_cmd_file_open) },
-               { "FileSaveAs", GTK_STOCK_SAVE_AS, N_("_Save a Copy..."), NULL,
-         N_("Save the current document with a new filename"),
+               { "FileSaveAs", GTK_STOCK_SAVE_AS, N_("_Save a Copy..."), NULL, NULL,
          G_CALLBACK (ev_window_cmd_save_as) },
        { "FilePrint", GTK_STOCK_PRINT, N_("_Print..."), "<control>P",
          N_("Print this document"),
          G_CALLBACK (ev_window_cmd_file_print) },
-       { "FileProperties", GTK_STOCK_PROPERTIES, N_("P_roperties"), "<alt>Return",
-         N_("View the properties of this document"),
+       { "FileProperties", GTK_STOCK_PROPERTIES, N_("P_roperties"), "<alt>Return", NULL,
          G_CALLBACK (ev_window_cmd_file_properties) },                       
-       { "FileCloseWindow", GTK_STOCK_CLOSE, NULL, "<control>W",
-         N_("Close this window"),
+       { "FileCloseWindow", GTK_STOCK_CLOSE, NULL, "<control>W", NULL,
          G_CALLBACK (ev_window_cmd_file_close_window) },
 
         /* Edit menu */
-        { "EditCopy", GTK_STOCK_COPY, NULL, "<control>C",
-          N_("Copy text from the document"),
+        { "EditCopy", GTK_STOCK_COPY, NULL, "<control>C", NULL,
           G_CALLBACK (ev_window_cmd_edit_copy) },
-       { "EditSelectAll", NULL, N_("Select _All"), "<control>A",
-         N_("Select the entire page"),
+       { "EditSelectAll", NULL, N_("Select _All"), "<control>A", NULL,
          G_CALLBACK (ev_window_cmd_edit_select_all) },
         { "EditFind", GTK_STOCK_FIND, NULL, "<control>F",
           N_("Find a word or phrase in the document"),
           G_CALLBACK (ev_window_cmd_edit_find) },
-       { "EditFindNext", NULL, N_("Find Ne_xt"), "<control>G",
-         N_("Find next occurrence of the word or phrase"),
+       { "EditFindNext", NULL, N_("Find Ne_xt"), "<control>G", NULL,
          G_CALLBACK (ev_window_cmd_edit_find_next) },
-        { "EditToolbar", NULL, N_("T_oolbar"), NULL,
-          N_("Customize the toolbar"),
+        { "EditToolbar", NULL, N_("T_oolbar"), NULL, NULL,
           G_CALLBACK (ev_window_cmd_edit_toolbar) },
-       { "EditRotateLeft", NULL, N_("Rotate _Left"), NULL,
-         N_("Rotate the document to the left"),
+       { "EditRotateLeft", NULL, N_("Rotate _Left"), NULL, NULL,
          G_CALLBACK (ev_window_cmd_edit_rotate_left) },
-       { "EditRotateRight", NULL, N_("Rotate _Right"), NULL,
-         N_("Rotate the document to the right"),
+       { "EditRotateRight", NULL, N_("Rotate _Right"), NULL, NULL,
          G_CALLBACK (ev_window_cmd_edit_rotate_right) },
 
         /* View menu */
@@ -2877,12 +2883,10 @@ static const GtkActionEntry entries[] = {
           G_CALLBACK (ev_window_cmd_go_last_page) },
 
        /* Help menu */
-       { "HelpContents", GTK_STOCK_HELP, N_("_Contents"), "F1",
-         N_("Display help for the viewer application"),
+       { "HelpContents", GTK_STOCK_HELP, N_("_Contents"), "F1", NULL,
          G_CALLBACK (ev_window_cmd_help_contents) },
 
-       { "HelpAbout", GTK_STOCK_ABOUT, N_("_About"), NULL,
-         N_("Display credits for the document viewer creators"),
+       { "HelpAbout", GTK_STOCK_ABOUT, N_("_About"), NULL, NULL,
          G_CALLBACK (ev_window_cmd_help_about) },
 
        /* Toolbar-only */
@@ -2893,50 +2897,35 @@ static const GtkActionEntry entries[] = {
        /* Accellerators */
        { "Escape", NULL, "", "Escape", "",
          G_CALLBACK (ev_window_cmd_escape) },
-        { "Slash", GTK_STOCK_FIND, NULL, "slash",
-          N_("Find a word or phrase in the document"),
+        { "Slash", GTK_STOCK_FIND, NULL, "slash", NULL,
           G_CALLBACK (ev_window_cmd_edit_find) },
-        { "PageDown", NULL, "", "Page_Down",
-          N_("Scroll one page forward"),
+        { "PageDown", NULL, "", "Page_Down", NULL,
           G_CALLBACK (ev_window_cmd_scroll_forward) },
-        { "PageUp", NULL, "", "Page_Up",
-          N_("Scroll one page backward"),
+        { "PageUp", NULL, "", "Page_Up", NULL,
           G_CALLBACK (ev_window_cmd_scroll_backward) },
-        { "Space", NULL, "", "space",
-          N_("Scroll one page forward"),
+        { "Space", NULL, "", "space", NULL,
           G_CALLBACK (ev_window_cmd_scroll_forward) },
-        { "ShiftSpace", NULL, "", "<shift>space",
-          N_("Scroll one page backward"),
+        { "ShiftSpace", NULL, "", "<shift>space", NULL,
           G_CALLBACK (ev_window_cmd_scroll_backward) },
-        { "BackSpace", NULL, "", "BackSpace",
-          N_("Scroll one page backward"),
+        { "BackSpace", NULL, "", "BackSpace", NULL,
           G_CALLBACK (ev_window_cmd_scroll_backward) },
-        { "ShiftBackSpace", NULL, "", "<shift>BackSpace",
-          N_("Scroll one page forward"),
+        { "ShiftBackSpace", NULL, "", "<shift>BackSpace", NULL,
           G_CALLBACK (ev_window_cmd_scroll_forward) },
-        { "Plus", GTK_STOCK_ZOOM_IN, NULL, "plus",
-          N_("Enlarge the document"),
+        { "Plus", GTK_STOCK_ZOOM_IN, NULL, "plus", NULL,
           G_CALLBACK (ev_window_cmd_view_zoom_in) },
-        { "CtrlEqual", GTK_STOCK_ZOOM_IN, NULL, "<control>equal",
-          N_("Enlarge the document"),
+        { "CtrlEqual", GTK_STOCK_ZOOM_IN, NULL, "<control>equal", NULL,
           G_CALLBACK (ev_window_cmd_view_zoom_in) },
-        { "Minus", GTK_STOCK_ZOOM_OUT, NULL, "minus",
-          N_("Shrink the document"),
+        { "Minus", GTK_STOCK_ZOOM_OUT, NULL, "minus", NULL,
           G_CALLBACK (ev_window_cmd_view_zoom_out) },
-        { "FocusPageSelector", NULL, "", "<control>l",
-          N_("Focus the page selector"),
+        { "FocusPageSelector", NULL, "", "<control>l", NULL,
           G_CALLBACK (ev_window_cmd_focus_page_selector) },
-        { "GoBackwardFast", NULL, "", "<shift>Page_Up",
-          N_("Go ten pages backward"),
+        { "GoBackwardFast", NULL, "", "<shift>Page_Up", NULL,
           G_CALLBACK (ev_window_cmd_go_backward) },
-        { "GoForwardFast", NULL, "", "<shift>Page_Down",
-          N_("Go ten pages forward"),
+        { "GoForwardFast", NULL, "", "<shift>Page_Down", NULL,
           G_CALLBACK (ev_window_cmd_go_forward) },
-        { "KpPlus", GTK_STOCK_ZOOM_IN, NULL, "KP_Add",
-          N_("Enlarge the document"),
+        { "KpPlus", GTK_STOCK_ZOOM_IN, NULL, "KP_Add", NULL,
           G_CALLBACK (ev_window_cmd_view_zoom_in) },
-        { "KpMinus", GTK_STOCK_ZOOM_OUT, NULL, "KP_Subtract",
-          N_("Shrink the document"),
+        { "KpMinus", GTK_STOCK_ZOOM_OUT, NULL, "KP_Subtract", NULL,
           G_CALLBACK (ev_window_cmd_view_zoom_out) },
 };