X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-window.c;h=fa4c87735c5c0517b4b08a18288dbb39c124c2cf;hb=e044f1f34f994c99ed4cd7744ef3d8af877ca103;hp=870818ad4841816ac0633285ae66d1db89d07ebf;hpb=6aff12024a5c291d0eaf0dd3ab601b2a4b30d521;p=evince.git diff --git a/shell/ev-window.c b/shell/ev-window.c index 870818ad..fa4c8773 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -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_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_window->priv->view); } static void