Updating branch refs/heads/master
         to 4c51257d51869265014a200dcd110304b360d382 (commit)
       from 32eab35513a4023bdfd5792fb6f1a4af3b3c701b (commit)

commit 4c51257d51869265014a200dcd110304b360d382
Author: Enrico Tröger <enr...@xfce.org>
Date:   Sat Oct 16 17:04:31 2010 +0200

    Remember side panel position

 src/settings.c |   18 ++++++++++++++++++
 src/window.c   |   12 +++++++++++-
 2 files changed, 29 insertions(+), 1 deletions(-)

diff --git a/src/settings.c b/src/settings.c
index e46ce3c..6282c44 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -52,6 +52,7 @@ struct _GigoloSettingsPrivate
        gint            view_mode;
        gboolean        show_panel;
        guint           last_panel_page;
+       gint            panel_position;
        gboolean        show_autoconnect_errors;
 
        gchar           *file_manager;
@@ -87,6 +88,7 @@ enum
        PROP_VIEW_MODE,
        PROP_SHOW_PANEL,
        PROP_LAST_PANEL_PAGE,
+       PROP_PANEL_POSITION,
        PROP_SHOW_AUTOCONNECT_ERRORS
 };
 
@@ -134,6 +136,9 @@ static void gigolo_settings_set_property(GObject *object, 
guint prop_id, const G
        case PROP_LAST_PANEL_PAGE:
                priv->last_panel_page = g_value_get_uint(value);
                break;
+       case PROP_PANEL_POSITION:
+               priv->panel_position = g_value_get_uint(value);
+               break;
        case PROP_SHOW_AUTOCONNECT_ERRORS:
                priv->show_autoconnect_errors = g_value_get_boolean(value);
                break;
@@ -185,6 +190,9 @@ static void gigolo_settings_get_property(GObject *object, 
guint prop_id, GValue
        case PROP_LAST_PANEL_PAGE:
                g_value_set_uint(value, priv->last_panel_page);
                break;
+       case PROP_PANEL_POSITION:
+               g_value_set_uint(value, priv->panel_position);
+               break;
        case PROP_SHOW_AUTOCONNECT_ERRORS:
                g_value_set_boolean(value, priv->show_autoconnect_errors);
                break;
@@ -293,6 +301,14 @@ static void gigolo_settings_class_init(GigoloSettingsClass 
*klass)
                                                                        0, 
G_MAXUINT, 0,
                                                                        
G_PARAM_READWRITE));
        g_object_class_install_property(gobject_class,
+                                                                       
PROP_PANEL_POSITION,
+                                                                       
g_param_spec_uint(
+                                                                       
"panel-position",
+                                                                       
"panel-position",
+                                                                       "Last 
panel position",
+                                                                       0, 
G_MAXUINT, 0,
+                                                                       
G_PARAM_READWRITE));
+       g_object_class_install_property(gobject_class,
                                                                        
PROP_SHOW_AUTOCONNECT_ERRORS,
                                                                        
g_param_spec_boolean(
                                                                        
"show-autoconnect-errors",
@@ -443,6 +459,7 @@ static void write_settings_config(GigoloSettings *settings)
        g_key_file_set_integer(k, SECTION_UI, "view_mode", priv->view_mode);
        g_key_file_set_boolean(k, SECTION_UI, "show_panel", priv->show_panel);
        g_key_file_set_integer(k, SECTION_UI, "last_panel_page", 
priv->last_panel_page);
+       g_key_file_set_integer(k, SECTION_UI, "panel_position", 
priv->panel_position);
        g_key_file_set_boolean(k, SECTION_UI, "show_autoconnect_errors", 
priv->show_autoconnect_errors);
 
        write_data(k, priv->config_filename);
@@ -549,6 +566,7 @@ static void load_settings_read_config(GigoloSettingsPrivate 
*priv)
        priv->toolbar_style = get_setting_int(k, SECTION_UI, "toolbar_style", 
-1);
        priv->toolbar_orientation = get_setting_int(k, SECTION_UI, 
"toolbar_orientation", 0);
        priv->view_mode = get_setting_int(k, SECTION_UI, "view_mode", 0);
+       priv->panel_position = get_setting_int(k, SECTION_UI, "panel_position", 
0);
        priv->geometry = g_key_file_get_integer_list(k, SECTION_UI, "geometry", 
NULL, &error);
        if (error)
        {
diff --git a/src/window.c b/src/window.c
index 279bb0b..d69f924 100644
--- a/src/window.c
+++ b/src/window.c
@@ -59,6 +59,7 @@ struct _GigoloWindowPrivate
        GtkWidget               *hbox_pane;
        GtkWidget               *hbox_view;
 
+       GtkWidget               *panel_pane;
        GtkWidget               *browse_panel;
        GtkWidget               *bookmark_panel;
        GtkWidget               *notebook_panel;
@@ -132,6 +133,9 @@ static void gigolo_window_destroy(GigoloWindow *window)
                        geo[4] = 0;
 
                gigolo_settings_set_geometry(priv->settings, geo, 5);
+
+               g_object_set(priv->settings, "panel-position",
+                       gtk_paned_get_position(GTK_PANED(priv->panel_pane)), 
NULL);
        }
        g_object_set(priv->settings, "last-panel-page",
                
gtk_notebook_get_current_page(GTK_NOTEBOOK(priv->notebook_panel)), NULL);
@@ -1386,6 +1390,7 @@ static GtkWidget *gigolo_window_create_panel(GigoloWindow 
*window)
 static void update_side_panel(GigoloWindow *window)
 {
        GigoloWindowPrivate *priv = GIGOLO_WINDOW_GET_PRIVATE(window);
+       guint panel_position;
 
        if (! gigolo_backend_gvfs_is_scheme_supported("smb"))
                gtk_widget_destroy(priv->browse_panel);
@@ -1395,6 +1400,11 @@ static void update_side_panel(GigoloWindow *window)
 
        gtk_notebook_set_current_page(GTK_NOTEBOOK(priv->notebook_panel),
                gigolo_settings_get_integer(priv->settings, "last-panel-page"));
+
+       panel_position = gigolo_settings_get_integer(priv->settings, 
"panel-position");
+       if (panel_position <= 0)
+               panel_position = 200;
+       gtk_paned_set_position(GTK_PANED(priv->panel_pane), panel_position);
 }
 
 
@@ -1462,7 +1472,7 @@ static void gigolo_window_init(GigoloWindow *window)
                "is-important", TRUE, NULL);
 
        /* Panel */
-       panel_pane = gigolo_window_create_panel(window);
+       priv->panel_pane = panel_pane = gigolo_window_create_panel(window);
 
        /* Pack the widgets altogether */
        priv->vbox = gtk_vbox_new(FALSE, 0);
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to