builder: Allow <property bind /> for objects

Previously, object properties had to always be set to a value.
This now works without it.
This commit is contained in:
Benjamin Otte
2019-12-18 16:47:31 +01:00
committed by Matthias Clasen
parent b800053911
commit c56cb1e89b

View File

@@ -527,7 +527,14 @@ gtk_builder_get_parameters (GtkBuilder *builder,
const char *property_name = g_intern_string (prop->pspec->name);
GValue property_value = G_VALUE_INIT;
if (G_IS_PARAM_SPEC_OBJECT (prop->pspec) &&
if (prop->bound && (!prop->text || prop->text->len == 0))
{
/* Ignore properties with a binding and no value since they are
* only there for to express the binding.
*/
continue;
}
else if (G_IS_PARAM_SPEC_OBJECT (prop->pspec) &&
(G_PARAM_SPEC_VALUE_TYPE (prop->pspec) != GDK_TYPE_PIXBUF) &&
(G_PARAM_SPEC_VALUE_TYPE (prop->pspec) != GDK_TYPE_TEXTURE) &&
(G_PARAM_SPEC_VALUE_TYPE (prop->pspec) != GDK_TYPE_PAINTABLE) &&
@@ -564,13 +571,6 @@ gtk_builder_get_parameters (GtkBuilder *builder,
continue;
}
}
else if (prop->bound && (!prop->text || prop->text->len == 0))
{
/* Ignore properties with a binding and no value since they are
* only there for to express the binding.
*/
continue;
}
else if (!gtk_builder_value_from_string (builder, prop->pspec,
prop->text->str,
&property_value,