[nautilus-actions] na_gconf_utils_dump_entry: also dump list values



commit 02ec5e2357d09f77a32f6aa96b60fdcbab9d838b
Author: Pierre Wieser <pwieser trychlos org>
Date:   Fri Jun 10 20:31:57 2011 +0200

    na_gconf_utils_dump_entry: also dump list values

 ChangeLog                 |    4 ++++
 src/core/na-gconf-utils.c |   24 ++++++++++++++++++++++++
 2 files changed, 28 insertions(+), 0 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 84a25f3..7729bc4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-06-10 Pierre Wieser <pwieser trychlos org>
+
+	* src/core/na-gconf-utils.c (dump_entry): Also dump list values.
+
 2011-06-08 Pierre Wieser <pwieser trychlos org>
 
 	* src/api/na-object-api.h:
diff --git a/src/core/na-gconf-utils.c b/src/core/na-gconf-utils.c
index adfc248..8c500bb 100644
--- a/src/core/na-gconf-utils.c
+++ b/src/core/na-gconf-utils.c
@@ -319,6 +319,9 @@ dump_entry( GConfEntry *entry, void *user_data )
 	static const gchar *thisfn = "na_gconf_utils_dump_entry";
 	gchar *str = NULL;
 	gboolean str_free = FALSE;
+	GSList *value_list, *it;
+	GConfValueType type_list;
+	GString *string;
 
 	gchar *key = g_path_get_basename( gconf_entry_get_key( entry ));
 	GConfValue *value = gconf_entry_get_value( entry );
@@ -344,6 +347,27 @@ dump_entry( GConfEntry *entry, void *user_data )
 				str_free = TRUE;
 				break;
 
+			case GCONF_VALUE_LIST:
+				type_list = gconf_value_get_list_type( value );
+				value_list = gconf_value_get_list( value );
+				switch( type_list ){
+					case GCONF_VALUE_STRING:
+						string = g_string_new( "[" );
+						for( it = value_list ; it ; it = it->next ){
+							if( g_utf8_strlen( string->str, -1 ) > 1 ){
+								string = g_string_append( string, "," );
+							}
+							string = g_string_append( string, ( const gchar * ) gconf_value_get_string( it->data ));
+						}
+						string = g_string_append( string, "]" );
+						str = g_string_free( string, FALSE );
+						break;
+					default:
+						str = g_strdup( "(undetermined value)" );
+				}
+				str_free = TRUE;
+				break;
+
 			default:
 				str = g_strdup( "(undetermined value)" );
 				str_free = TRUE;



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