]> www.fi.muni.cz Git - evince.git/commitdiff
Marco Pesenti Gritti <marco@gnome.org>
authorCarlos Garcia Campos <carlosgc@gnome.org>
Fri, 25 Feb 2005 08:38:12 +0000 (08:38 +0000)
committerMarco Pesenti Gritti <marco@src.gnome.org>
Fri, 25 Feb 2005 08:38:12 +0000 (08:38 +0000)
2005-02-25  Carlos Garcia Campos <carlosgc@gnome.org>
            Marco Pesenti Gritti <marco@gnome.org>

        * shell/ev-window.c: Remember the sidebar size

        * data/evince.schemas.in: Add a new gconf key to store the size of
        the sidebar

ChangeLog
data/evince.schemas.in
shell/ev-sidebar.c
shell/ev-window.c

index 537290ed4bb4ed6f8371cfcc314f3ffb8b1e6cb1..20a5a3fdc81a5fb34a56dddc93b13537e068c3c9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2005-02-25  Carlos Garcia Campos <carlosgc@gnome.org>
+           Marco Pesenti Gritti <marco@gnome.org>
+
+       * shell/ev-window.c: Remember the sidebar size
+
+       * data/evince.schemas.in: Add a new gconf key to store the size of
+       the sidebar
+
 2005-02-24  Kai Willadsen  <kaiw@itee.uq.edu.au>
 
        * data/evince-ui.xml:
index d16bd9528498559fdc4417cd04c026553d3251b4..c74653ada2db3c450aee0ae83a6b307537bd17ca 100644 (file)
         <long>Show statusbar by default.</long>
       </locale>
     </schema>
+    <schema>
+      <key>/schemas/apps/evince/sidebar_size</key>
+      <applyto>/apps/evince/sidebar_size</applyto>
+      <owner>evince</owner>
+      <type>int</type>
+      <default>132</default>
+      <locale name="C">
+        <short>Sidebar size by default</short>
+        <long>Sidebar size by default.</long>
+      </locale>
+    </schema>
   </schemalist>
 </gconfschemafile>
index c5a6574ceab72df8951892790ec6ddc88a6f9b7d..e79ad60c4b3391a6096d3d3f31e327f64e1c465d 100644 (file)
@@ -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 *)
index 95ceb84bb8576d9384c6f9697cd49825021b6c75..4a94e3449129e6239c4057a95978488526a7684f 100644 (file)
@@ -133,6 +133,9 @@ static GtkTargetEntry ev_drop_types[] = {
 #define GCONF_CHROME_SIDEBAR   "/apps/evince/show_sidebar"
 #define GCONF_CHROME_STATUSBAR "/apps/evince/show_statusbar"
 
+#define GCONF_SIDEBAR_SIZE      "/apps/evince/sidebar_size"
+#define SIDEBAR_DEFAULT_SIZE    132
+
 static void     ev_window_update_fullscreen_popup (EvWindow         *window);
 static void     ev_window_sidebar_visibility_changed_cb (EvSidebar *ev_sidebar, GParamSpec *pspec,
                                                         EvWindow   *ev_window);
@@ -229,6 +232,8 @@ update_action_sensitivity (EvWindow *ev_window)
 static void
 set_widget_visibility (GtkWidget *widget, gboolean visible)
 {
+       g_return_if_fail (GTK_IS_WIDGET (widget));
+       
        if (visible)
                gtk_widget_show (widget);
        else
@@ -1091,6 +1096,20 @@ screen_size_changed_cb (GdkScreen *screen,
        ev_window_update_fullscreen_popup (window);
 }
 
+static void
+ev_window_sidebar_position_change_cb (GObject *object, GParamSpec *pspec,
+                                     EvWindow *ev_window)
+{
+       GConfClient *client;
+       int sidebar_size;
+
+       sidebar_size = gtk_paned_get_position (GTK_PANED (object));
+
+       client = gconf_client_get_default ();
+       gconf_client_set_int (client, GCONF_SIDEBAR_SIZE, sidebar_size, NULL);
+       g_object_unref (client);
+}
+
 static void
 destroy_fullscreen_popup (EvWindow *window)
 {
@@ -2181,6 +2200,9 @@ ev_window_init (EvWindow *ev_window)
        GtkAccelGroup *accel_group;
        GError *error = NULL;
        GtkWidget *sidebar_widget, *toolbar_dock;
+       GConfValue *value;
+       GConfClient *client;
+       int sidebar_size;
 
        ev_window->priv = EV_WINDOW_GET_PRIVATE (ev_window);
 
@@ -2257,16 +2279,30 @@ ev_window_init (EvWindow *ev_window)
 
        /* Add the main area */
        ev_window->priv->hpaned = gtk_hpaned_new ();
+       g_signal_connect (ev_window->priv->hpaned,
+                         "notify::position",
+                         G_CALLBACK (ev_window_sidebar_position_change_cb),
+                         ev_window);
+       
+       sidebar_size = SIDEBAR_DEFAULT_SIZE;
+       client = gconf_client_get_default ();
+       value = gconf_client_get (client, GCONF_SIDEBAR_SIZE, NULL);
+       if (value != NULL) {
+               if (value->type == GCONF_VALUE_INT) {
+                       sidebar_size = gconf_value_get_int (value);
+               }
+               gconf_value_free (value);
+       }
+       g_object_unref (client);
+       gtk_paned_set_position (GTK_PANED (ev_window->priv->hpaned), sidebar_size);
        gtk_box_pack_start (GTK_BOX (ev_window->priv->main_box), ev_window->priv->hpaned,
-                           TRUE, TRUE, 0);     
+                           TRUE, TRUE, 0);
+       gtk_widget_show (ev_window->priv->hpaned);
+       
        ev_window->priv->sidebar = ev_sidebar_new ();
-       g_signal_connect (ev_window->priv->sidebar,
-                         "notify::visible",
-                         G_CALLBACK (ev_window_sidebar_visibility_changed_cb),
-                         ev_window);
        gtk_paned_pack1 (GTK_PANED (ev_window->priv->hpaned),
                         ev_window->priv->sidebar, FALSE, FALSE);
-       gtk_widget_show (ev_window->priv->hpaned);
+       gtk_widget_show (ev_window->priv->sidebar);
 
        /* Stub sidebar, for now */
        sidebar_widget = ev_sidebar_links_new ();
@@ -2341,6 +2377,12 @@ ev_window_init (EvWindow *ev_window)
        set_chrome_actions (ev_window);
        update_chrome_visibility (ev_window);
 
+       /* Connect sidebar signals */
+       g_signal_connect (ev_window->priv->sidebar,
+                         "notify::visible",
+                         G_CALLBACK (ev_window_sidebar_visibility_changed_cb),
+                         ev_window);
+       
        /* Connect to find bar signals */
        g_signal_connect (ev_window->priv->find_bar,
                          "previous",