eel r2168 - in trunk: . eel
- From: cneumair svn gnome org
- To: svn-commits-list gnome org
- Subject: eel r2168 - in trunk: . eel
- Date: Wed, 10 Sep 2008 19:54:20 +0000 (UTC)
Author: cneumair
Date: Wed Sep 10 19:54:20 2008
New Revision: 2168
URL: http://svn.gnome.org/viewvc/eel?rev=2168&view=rev
Log:
2008-09-10 Christian Neumair <cneumair gnome org>
* eel/eel-preferences.c (update_auto_string_array_as_quarks),
(preferences_entry_update_auto_storage),
(preferences_entry_remove_auto_storage),
(eel_preferences_add_auto_string_array_as_quarks):
* eel/eel-preferences.h:
Add eel_preferences_add_auto_string_array_as_quarks(), which maps a
string array to a quark array. No remove function yet, since up to now
it is not needed. Parly fixes #551576.
Modified:
trunk/ChangeLog
trunk/eel/eel-preferences.c
trunk/eel/eel-preferences.h
Modified: trunk/eel/eel-preferences.c
==============================================================================
--- trunk/eel/eel-preferences.c (original)
+++ trunk/eel/eel-preferences.c Wed Sep 10 19:54:20 2008
@@ -43,7 +43,8 @@
PREFERENCE_BOOLEAN = 1,
PREFERENCE_INTEGER,
PREFERENCE_STRING,
- PREFERENCE_STRING_ARRAY
+ PREFERENCE_STRING_ARRAY,
+ PREFERENCE_STRING_ARRAY_AS_QUARKS
} PreferenceType;
/*
@@ -680,6 +681,30 @@
}
static void
+update_auto_string_array_as_quarks (gpointer data, gpointer callback_data)
+{
+ GQuark **storage;
+ char **value;
+ int i;
+
+ g_assert (data != NULL);
+ g_assert (callback_data != NULL);
+
+ storage = (GQuark **)data;
+ value = (char **)callback_data;
+
+ g_free (*storage);
+ *storage = g_new (GQuark, g_strv_length (value) + 1);
+
+ if (value != NULL) {
+ for (i = 0; value[i] != NULL; ++i) {
+ (*storage)[i] = g_quark_from_string (value[i]);
+ }
+ }
+ (*storage)[i] = 0;
+}
+
+static void
update_auto_integer_or_boolean (gpointer data, gpointer callback_data)
{
g_assert (data != NULL);
@@ -717,6 +742,13 @@
new_string_array_value);
g_strfreev (new_string_array_value);
break;
+ case PREFERENCE_STRING_ARRAY_AS_QUARKS:
+ new_string_array_value = eel_preferences_get_string_array (entry->name);
+ g_list_foreach (entry->auto_storage_list,
+ update_auto_string_array_as_quarks,
+ new_string_array_value);
+ g_strfreev (new_string_array_value);
+ break;
case PREFERENCE_INTEGER:
new_int_value = eel_preferences_get_integer (entry->name);
g_list_foreach (entry->auto_storage_list,
@@ -923,6 +955,9 @@
case PREFERENCE_STRING_ARRAY:
update_auto_string_array (storage, NULL);
break;
+ case PREFERENCE_STRING_ARRAY_AS_QUARKS:
+ update_auto_string_array_as_quarks (storage, NULL);
+ break;
case PREFERENCE_BOOLEAN:
case PREFERENCE_INTEGER:
update_auto_integer_or_boolean (storage, NULL);
@@ -1169,6 +1204,27 @@
}
void
+eel_preferences_add_auto_string_array_as_quarks (const char *name,
+ GQuark **storage)
+{
+ PreferencesEntry *entry;
+ char **value;
+
+ g_return_if_fail (name != NULL);
+ g_return_if_fail (storage != NULL);
+ g_return_if_fail (preferences_is_initialized ());
+
+ entry = preferences_global_table_lookup_or_insert (name);
+ g_assert (entry != NULL);
+
+ preferences_entry_add_auto_storage (entry, storage, PREFERENCE_STRING_ARRAY_AS_QUARKS);
+
+ value = eel_preferences_get_string_array (entry->name);
+ update_auto_string_array_as_quarks (storage, value);
+ g_free (value);
+}
+
+void
eel_preferences_add_auto_integer (const char *name,
int *storage)
{
Modified: trunk/eel/eel-preferences.h
==============================================================================
--- trunk/eel/eel-preferences.h (original)
+++ trunk/eel/eel-preferences.h Wed Sep 10 19:54:20 2008
@@ -75,6 +75,8 @@
const char **storage);
void eel_preferences_add_auto_string_array (const char *name,
char ***storage);
+void eel_preferences_add_auto_string_array_as_quarks (const char *name,
+ GQuark **storage);
void eel_preferences_add_auto_integer (const char *name,
int *storage);
void eel_preferences_add_auto_enum (const char *name,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]