[maemo-commits] [maemo-commits] r12918 - projects/haf/trunk/hildon-fm/hildon-fm
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Mon Jul 30 17:39:47 EEST 2007
- Previous message: [maemo-commits] r12917 - projects/haf/trunk/hildon-fm/hildon-fm
- Next message: [maemo-commits] r12919 - in projects/haf/trunk/hildon-fm: . debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: marivoll Date: 2007-07-30 17:39:45 +0300 (Mon, 30 Jul 2007) New Revision: 12918 Modified: projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-chooser-dialog.c Log: * hildon-fm/hildon-file-chooser-dialog.c (get_global_pane_position, set_global_pane_position): New. (hildon_file_chooser_dialog_constructor, hildon_file_chooser_dialog_destroy): Use them to set and store the pane position permanently. Modified: projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-chooser-dialog.c =================================================================== --- projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-chooser-dialog.c 2007-07-30 14:38:33 UTC (rev 12917) +++ projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-chooser-dialog.c 2007-07-30 14:39:45 UTC (rev 12918) @@ -59,6 +59,7 @@ #include <libintl.h> #include <gdk/gdkx.h> #include <stdlib.h> +#include <glib.h> #include "hildon-file-common-private.h" #define HILDON_RESPONSE_FOLDER_BUTTON 12345 @@ -283,7 +284,40 @@ return len; } +static gint +get_global_pane_position () +{ + GError *error = NULL; + GKeyFile *keys; + gint pos; + + keys = hildon_file_system_open_user_settings (); + pos = g_key_file_get_integer (keys, "default", "pane_position", &error); + if (error) + { + pos = 250; + if (!g_error_matches (error, G_KEY_FILE_ERROR, + G_KEY_FILE_ERROR_KEY_NOT_FOUND) + && !g_error_matches (error, G_KEY_FILE_ERROR, + G_KEY_FILE_ERROR_GROUP_NOT_FOUND)) + fprintf (stderr, "%s\n", error->message); + g_error_free (error); + } + + g_key_file_free (keys); + return pos; +} + static void +set_global_pane_position (gint pos) +{ + GKeyFile *keys = hildon_file_system_open_user_settings (); + g_key_file_set_integer (keys, "default", "pane_position", pos); + hildon_file_system_write_user_settings (keys); + g_key_file_free (keys); +} + +static void hildon_file_chooser_dialog_set_limit(HildonFileChooserDialog *self) { /* The full pathname is limited to MAX_FULL_PATH_LENGTH characters, @@ -1572,10 +1606,21 @@ static void hildon_file_chooser_dialog_destroy(GtkObject * obj) { HildonFileChooserDialog *dialog; + gint pos; ULOG_DEBUG_F("entered"); dialog = HILDON_FILE_CHOOSER_DIALOG(obj); + + if (dialog->priv->filetree) + { + pos = -1; + g_object_get (dialog->priv->filetree, + "pane-position", &pos, + NULL); + if (pos >= 0) + set_global_pane_position (pos); + } /* We need sometimes to break cyclic references */ @@ -1589,6 +1634,8 @@ dialog->priv->model = NULL; } + dialog->priv->filetree = NULL; + GTK_OBJECT_CLASS(hildon_file_chooser_dialog_parent_class)-> destroy(obj); } @@ -1962,9 +2009,12 @@ priv = HILDON_FILE_CHOOSER_DIALOG(obj)->priv; g_assert(priv->model); - priv->filetree = g_object_new(HILDON_TYPE_FILE_SELECTION, - "model", priv->model, "visible-columns", - HILDON_FILE_SELECTION_SHOW_NAME | HILDON_FILE_SELECTION_SHOW_MODIFIED, + priv->filetree = g_object_new + (HILDON_TYPE_FILE_SELECTION, + "model", priv->model, + "visible-columns", (HILDON_FILE_SELECTION_SHOW_NAME + | HILDON_FILE_SELECTION_SHOW_MODIFIED), + "pane-position", get_global_pane_position (), NULL); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(obj)->vbox),
- Previous message: [maemo-commits] r12917 - projects/haf/trunk/hildon-fm/hildon-fm
- Next message: [maemo-commits] r12919 - in projects/haf/trunk/hildon-fm: . debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]