X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-sidebar.c;h=b1454d93e4af06245e645c71efa5d1ee197192a4;hb=a5542ba7635d06d7b4b8e94ea472f29cbf4d2c4e;hp=c5a6574ceab72df8951892790ec6ddc88a6f9b7d;hpb=86c8055b11de2c6bf38a3e747448b83ae0ffcaf9;p=evince.git diff --git a/shell/ev-sidebar.c b/shell/ev-sidebar.c index c5a6574c..b1454d93 100644 --- a/shell/ev-sidebar.c +++ b/shell/ev-sidebar.c @@ -233,7 +233,6 @@ ev_sidebar_init (EvSidebar *ev_sidebar) GtkWidget *image; ev_sidebar->priv = EV_SIDEBAR_GET_PRIVATE (ev_sidebar); - gtk_box_set_spacing (GTK_BOX (ev_sidebar), 6); /* data model */ ev_sidebar->priv->page_model = (GtkTreeModel *) @@ -269,7 +268,7 @@ ev_sidebar_init (EvSidebar *ev_sidebar) ev_sidebar->priv->label = gtk_label_new (""); gtk_box_pack_start (GTK_BOX (select_hbox), ev_sidebar->priv->label, - TRUE, FALSE, 0); + FALSE, FALSE, 0); gtk_widget_show (ev_sidebar->priv->label); arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE); @@ -279,7 +278,7 @@ ev_sidebar_init (EvSidebar *ev_sidebar) gtk_container_add (GTK_CONTAINER (select_button), select_hbox); gtk_widget_show (select_hbox); - gtk_box_pack_start (GTK_BOX (hbox), select_button, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (hbox), select_button, TRUE, TRUE, 0); gtk_widget_show (select_button); close_button = gtk_button_new (); @@ -395,20 +394,48 @@ ev_sidebar_set_document (EvSidebar *sidebar, result; result = gtk_tree_model_iter_next (priv->page_model, &iter)) { GtkWidget *widget; + GtkWidget *menu_widget; gtk_tree_model_get (priv->page_model, &iter, PAGE_COLUMN_MAIN_WIDGET, &widget, + PAGE_COLUMN_MENU_ITEM, &menu_widget, -1); - if (EV_IS_SIDEBAR_LINKS (widget) - && EV_IS_DOCUMENT_LINKS (document) - && ev_document_links_has_document_links (EV_DOCUMENT_LINKS (document))) { - ev_sidebar_links_set_document - (EV_SIDEBAR_LINKS (widget), document); - } else if (EV_IS_SIDEBAR_THUMBNAILS (widget) && - EV_IS_DOCUMENT_THUMBNAILS (document)) { - ev_sidebar_thumbnails_set_document - (EV_SIDEBAR_THUMBNAILS (widget), document); + + if (EV_IS_SIDEBAR_LINKS (widget)) { + if (EV_IS_DOCUMENT_LINKS (document) && + ev_document_links_has_document_links (EV_DOCUMENT_LINKS (document))) { + ev_sidebar_links_set_document (EV_SIDEBAR_LINKS (widget), document); + continue; + } else { + gtk_widget_set_sensitive (menu_widget, FALSE); + } + } + + if (EV_IS_SIDEBAR_THUMBNAILS (widget)) { + if (EV_IS_DOCUMENT_THUMBNAILS (document) && + (ev_document_get_n_pages (document) > 1)) { + ev_sidebar_thumbnails_set_document (EV_SIDEBAR_THUMBNAILS (widget), document); + continue; + } else { + gtk_widget_set_sensitive (menu_widget, FALSE); + } } } } + +gboolean +ev_sidebar_supports_document (EvSidebar *ev_sidebar, + EvDocument *document) +{ + gboolean need_thumbnails; + gboolean need_index; + + need_thumbnails = EV_IS_DOCUMENT_THUMBNAILS (document) && (ev_document_get_n_pages (document) > 1); + need_index = (EV_IS_DOCUMENT_LINKS (document)); + + return need_thumbnails || need_index; +} + + +