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