[gnome-builder] libide/tweaks: print object types and listmodel generics
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] libide/tweaks: print object types and listmodel generics
- Date: Sun, 31 Jul 2022 12:37:57 +0000 (UTC)
commit 97da9b685c402e526a1e0a5c6d4a362e46e6a33c
Author: Christian Hergert <chergert redhat com>
Date: Sun Jul 31 05:31:50 2022 -0700
libide/tweaks: print object types and listmodel generics
src/libide/tweaks/ide-tweaks-item.c | 46 +++++++++++++++++++++++++++----------
1 file changed, 34 insertions(+), 12 deletions(-)
---
diff --git a/src/libide/tweaks/ide-tweaks-item.c b/src/libide/tweaks/ide-tweaks-item.c
index e9c0d9f44..02cd35df2 100644
--- a/src/libide/tweaks/ide-tweaks-item.c
+++ b/src/libide/tweaks/ide-tweaks-item.c
@@ -523,19 +523,41 @@ _ide_tweaks_item_printf (IdeTweaksItem *self,
{
GParamSpec *pspec = pspecs[i];
- if (pspec->flags & G_PARAM_READABLE &&
- g_value_type_transformable (pspec->value_type, G_TYPE_STRING))
+ if (pspec->flags & G_PARAM_READABLE)
{
- g_auto(GValue) value = G_VALUE_INIT;
- g_autofree char *copy = NULL;
-
- g_value_init (&value, G_TYPE_STRING);
- g_object_get_property (G_OBJECT (self), pspec->name, &value);
-
- if (g_value_get_string (&value))
- copy = g_strescape (g_value_get_string (&value), NULL);
-
- g_string_append_printf (string, " %s=\"%s\"", pspec->name, copy ? copy : "");
+ if (g_value_type_transformable (pspec->value_type, G_TYPE_STRING))
+ {
+ g_auto(GValue) value = G_VALUE_INIT;
+ g_autofree char *copy = NULL;
+
+ g_value_init (&value, G_TYPE_STRING);
+ g_object_get_property (G_OBJECT (self), pspec->name, &value);
+
+ if (g_value_get_string (&value))
+ copy = g_strescape (g_value_get_string (&value), NULL);
+
+ g_string_append_printf (string, " %s=\"%s\"", pspec->name, copy ? copy : "");
+ }
+ else if (g_type_is_a (pspec->value_type, G_TYPE_OBJECT))
+ {
+ g_auto(GValue) value = G_VALUE_INIT;
+ g_autofree char *generic = NULL;
+ const char *type_name = "";
+ GObject *obj;
+
+ g_value_init (&value, G_TYPE_OBJECT);
+ g_object_get_property (G_OBJECT (self), pspec->name, &value);
+
+ if ((obj = g_value_get_object (&value)))
+ type_name = G_OBJECT_TYPE_NAME (obj);
+
+ if (G_IS_LIST_MODEL (obj))
+ type_name = generic = g_strdup_printf ("%s<%s>",
+ G_OBJECT_TYPE_NAME (obj),
+ g_type_name (g_list_model_get_item_type (G_LIST_MODEL
(obj))));
+
+ g_string_append_printf (string, " %s=\"%s\"", pspec->name, type_name);
+ }
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]