[nautilus-actions] Dump content of readen entries



commit 5d435e95b654fe31a654e5441ada591781e74153
Author: Pierre Wieser <pwieser trychlos org>
Date:   Fri Apr 9 14:27:24 2010 +0200

    Dump content of readen entries

 ChangeLog                  |    7 +++++
 src/api/na-gconf-utils.h   |    1 +
 src/core/na-gconf-utils.c  |   55 ++++++++++++++++++++++++++++++++++++++++++++
 src/io-gconf/nagp-reader.c |    1 +
 4 files changed, 64 insertions(+), 0 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 02a5d1d..cce509d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2009-04-09 Pierre Wieser <pwieser trychlos org>
 
+	* src/api/na-gconf-utils.h:
+	* src/core/na-gconf-utils.c (na_gconf_utils_dump_entries):
+	New function.
+
+	* src/io-gconf/nagp-reader.c (read_item):
+	Dump content of readen entries.
+
 	* src/io-gconf/nagp-gconf-provider.c (install_monitors):
 	Also monitors schemas to be triggered when importing a schema.
 
diff --git a/src/api/na-gconf-utils.h b/src/api/na-gconf-utils.h
index 37984b8..2275121 100644
--- a/src/api/na-gconf-utils.h
+++ b/src/api/na-gconf-utils.h
@@ -49,6 +49,7 @@ GSList  *na_gconf_utils_get_entries( GConfClient *gconf, const gchar *path );
 gboolean na_gconf_utils_get_bool_from_entries       ( GSList *entries, const gchar *entry, gboolean *value );
 gboolean na_gconf_utils_get_string_from_entries     ( GSList *entries, const gchar *entry, gchar **value );
 gboolean na_gconf_utils_get_string_list_from_entries( GSList *entries, const gchar *entry, GSList **value );
+void     na_gconf_utils_dump_entries                ( GSList *entries );
 void     na_gconf_utils_free_entries                ( GSList *entries );
 
 gboolean na_gconf_utils_read_bool        ( GConfClient *gconf, const gchar *path, gboolean use_schema, gboolean default_value );
diff --git a/src/core/na-gconf-utils.c b/src/core/na-gconf-utils.c
index bd8fdd6..e8dd566 100644
--- a/src/core/na-gconf-utils.c
+++ b/src/core/na-gconf-utils.c
@@ -37,6 +37,7 @@
 #include <api/na-core-utils.h>
 #include <api/na-gconf-utils.h>
 
+static void        dump_entry( GConfEntry *entry, void *user_data );
 static GConfValue *read_value( GConfClient *gconf, const gchar *path, gboolean use_schema, GConfValueType type );
 static gboolean    sync_gconf( GConfClient *gconf, gchar **message );
 
@@ -280,6 +281,60 @@ na_gconf_utils_get_string_list_from_entries( GSList *entries, const gchar *entry
 }
 
 /**
+ * na_gconf_utils_dump_entries:
+ * @list: a list of #GConfEntry as returned by na_gconf_utils_get_entries().
+ *
+ * Dumps the content of the entries.
+ */
+void
+na_gconf_utils_dump_entries( GSList *list )
+{
+	g_slist_foreach( list, ( GFunc ) dump_entry, NULL );
+}
+
+static void
+dump_entry( GConfEntry *entry, void *user_data )
+{
+	static const gchar *thisfn = "na_gconf_utils_dump_entry";
+
+	gchar *key = g_path_get_basename( gconf_entry_get_key( entry ));
+	GConfValue *value = gconf_entry_get_value( entry );
+	gchar *str;
+	gboolean str_free = FALSE;
+
+	switch( value->type ){
+		case GCONF_VALUE_STRING:
+			str = ( gchar * ) gconf_value_get_string( value );
+			break;
+
+		case GCONF_VALUE_INT:
+			str = g_strdup_printf( "%d", gconf_value_get_int( value ));
+			str_free = TRUE;
+			break;
+
+		case GCONF_VALUE_FLOAT:
+			str = g_strdup_printf( "%f", gconf_value_get_float( value ));
+			str_free = TRUE;
+			break;
+
+		case GCONF_VALUE_BOOL:
+			str = g_strdup_printf( "%s", gconf_value_get_bool( value ) ? "True":"False" );
+			str_free = TRUE;
+			break;
+
+		default:
+			str = g_strdup( "(undetermined value)" );
+			str_free = TRUE;
+	}
+	g_debug( "%s: key=%s, value=%s", thisfn, key, str );
+
+	if( str_free ){
+		g_free( str );
+	}
+	g_free( key );
+}
+
+/**
  * na_gconf_utils_free_entries:
  * @list: a list of #GConfEntry as returned by na_gconf_utils_get_entries().
  *
diff --git a/src/io-gconf/nagp-reader.c b/src/io-gconf/nagp-reader.c
index 83d443f..793c086 100644
--- a/src/io-gconf/nagp-reader.c
+++ b/src/io-gconf/nagp-reader.c
@@ -149,6 +149,7 @@ read_item( NagpGConfProvider *provider, const gchar *path, GSList **messages )
 		data = g_new0( ReaderData, 1 );
 		data->path = ( gchar * ) path;
 		data->entries = na_gconf_utils_get_entries( provider->private->gconf, path );
+		na_gconf_utils_dump_entries( data->entries );
 
 		na_ifactory_provider_read_item(
 				NA_IFACTORY_PROVIDER( provider ),



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]