Handle NULL string properties in bindings

Admittely, we just handle them by failing the conversion...
This commit is contained in:
Matthias Clasen 2010-04-21 14:47:32 -04:00
parent 3814868b7a
commit 585a37f374
3 changed files with 6 additions and 5 deletions

View File

@ -365,7 +365,9 @@ g_settings_set_mapping (const GValue *value,
else if (G_VALUE_HOLDS_STRING (value))
{
if (g_variant_type_equal (expected_type, G_VARIANT_TYPE_STRING))
if (g_value_get_string (value) == NULL)
return NULL;
else if (g_variant_type_equal (expected_type, G_VARIANT_TYPE_STRING))
return g_variant_new_string (g_value_get_string (value));
else if (g_variant_type_equal (expected_type, G_VARIANT_TYPE_OBJECT_PATH))
return g_variant_new_object_path (g_value_get_string (value));

View File

@ -1233,9 +1233,9 @@ g_settings_binding_property_changed (GObject *object,
* The binding uses the default GIO mapping functions to map
* between the settings and property values. These functions
* handle booleans, numeric types and string types in a
* straightforward way. Use g_settings_bind_with_mapping()
* if you need a custom mapping, or map between types that
* are not supported by the default mapping functions.
* straightforward way. Use g_settings_bind_with_mapping() if
* you need a custom mapping, or map between types that are not
* supported by the default mapping functions.
*
* Unless the @flags include %G_SETTINGS_BIND_NO_SENSITIVITY, this
* function also establishes a binding between the writability of

View File

@ -672,7 +672,6 @@ G_DEFINE_TYPE (TestObject, test_object, G_TYPE_OBJECT)
static void
test_object_init (TestObject *object)
{
object->no_write_prop = "";
}
static void