Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2005-09-19 12:15:02 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-09-19 12:15:02 (GMT)
commitc2f443161a3fe0e1415d9e9017c300f6adf52074 (patch)
tree5a3e166973817271d4524c83262dc91be57e6cf9
parentea7ab15dc184f23fad8b853cbd227b39356c3732 (diff)
Show the index by default when there is one
2005-09-19 Marco Pesenti Gritti <mpg@redhat.com> * shell/ev-window.c: (update_sidebar_visibility), (setup_sidebar_from_metadata), (ev_window_setup_document), (setup_view_from_metadata): Show the index by default when there is one
-rw-r--r--ChangeLog8
-rw-r--r--shell/ev-window.c81
2 files changed, 55 insertions, 34 deletions
diff --git a/ChangeLog b/ChangeLog
index e3da7bd..7f6f996 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2005-09-19 Marco Pesenti Gritti <mpg@redhat.com>
+ * shell/ev-window.c: (update_sidebar_visibility),
+ (setup_sidebar_from_metadata), (ev_window_setup_document),
+ (setup_view_from_metadata):
+
+ Show the index by default when there is one
+
+2005-09-19 Marco Pesenti Gritti <mpg@redhat.com>
+
* shell/ev-window-title.c: (ev_window_title_set_document):
Missing null check
diff --git a/shell/ev-window.c b/shell/ev-window.c
index fe3d624..4c893f3 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -603,6 +603,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)
{
char *uri = window->priv->uri;
@@ -616,6 +628,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)
{
const EvDocumentInfo *info;
@@ -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
@@ -876,18 +923,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)
{
EvView *view = EV_VIEW (window->priv->view);
@@ -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