[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 ]
