[gnome-builder/wip/gtk4-port] plugins/testui: propagate changes from test icon name
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/gtk4-port] plugins/testui: propagate changes from test icon name
- Date: Sat, 9 Jul 2022 23:58:52 +0000 (UTC)
commit 68555b47f49add96a068d49377322da6284f486a
Author: Christian Hergert <chergert redhat com>
Date: Sat Jul 9 16:44:43 2022 -0700
plugins/testui: propagate changes from test icon name
src/plugins/testui/gbp-testui-item.c | 36 +++++++++++++++++++++++++++++++++---
1 file changed, 33 insertions(+), 3 deletions(-)
---
diff --git a/src/plugins/testui/gbp-testui-item.c b/src/plugins/testui/gbp-testui-item.c
index c9e249df3..c7d965431 100644
--- a/src/plugins/testui/gbp-testui-item.c
+++ b/src/plugins/testui/gbp-testui-item.c
@@ -89,6 +89,36 @@ gbp_testui_item_get_title (GbpTestuiItem *self)
return NULL;
}
+static void
+gbp_testui_item_notify_icon_name_cb (GbpTestuiItem *self,
+ GParamSpec *pspec,
+ IdeTest *test)
+{
+ g_assert (IDE_IS_MAIN_THREAD ());
+ g_assert (GBP_IS_TESTUI_ITEM (self));
+ g_assert (IDE_IS_TEST (test));
+
+ g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_ICON_NAME]);
+}
+
+static void
+gbp_testui_item_set_instance (GbpTestuiItem *self,
+ gpointer instance)
+{
+ g_assert (IDE_IS_MAIN_THREAD ());
+ g_assert (GBP_IS_TESTUI_ITEM (self));
+ g_assert (G_IS_OBJECT (instance));
+
+ self->instance = g_object_ref (instance);
+
+ if (IDE_IS_TEST (instance))
+ g_signal_connect_object (instance,
+ "notify::icon-name",
+ G_CALLBACK (gbp_testui_item_notify_icon_name_cb),
+ self,
+ G_CONNECT_SWAPPED);
+}
+
static void
gbp_testui_item_dispose (GObject *object)
{
@@ -114,11 +144,11 @@ gbp_testui_item_get_property (GObject *object,
break;
case PROP_ICON_NAME:
- g_value_set_static_string (value, g_intern_string (gbp_testui_item_get_icon_name (self)));
+ g_value_set_string (value, gbp_testui_item_get_icon_name (self));
break;
case PROP_EXPANDED_ICON_NAME:
- g_value_set_static_string (value, g_intern_string (gbp_testui_item_get_expanded_icon_name (self)));
+ g_value_set_string (value, gbp_testui_item_get_expanded_icon_name (self));
break;
case PROP_TITLE:
@@ -141,7 +171,7 @@ gbp_testui_item_set_property (GObject *object,
switch (prop_id)
{
case PROP_INSTANCE:
- self->instance = g_value_dup_object (value);
+ gbp_testui_item_set_instance (self, g_value_get_object (value));
break;
default:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]