diff options
author | Juan Pablo Ugarte <jpu@src.gnome.org> | 2006-08-22 20:46:30 +0000 |
---|---|---|
committer | Juan Pablo Ugarte <jpu@src.gnome.org> | 2006-08-22 20:46:30 +0000 |
commit | 857885c4c823063bcc05dbeb7ec8efc1648d2d93 (patch) | |
tree | f5a69f9800c477ba39dbf234bc70ef43ab14b908 | |
parent | 496bc51d50056440f341f28afb0bede851a0d171 (diff) | |
download | glade-857885c4c823063bcc05dbeb7ec8efc1648d2d93.tar.gz |
glade_widget_class_add_signals() simplification.
* src/glade-widget-class.c: glade_widget_class_add_signals() simplification.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/glade-widget-class.c | 24 |
2 files changed, 10 insertions, 19 deletions
@@ -1,3 +1,8 @@ +2006-08-18 Juan Pablo Ugarte <juanpablougarte@gmail.com> + + * src/glade-widget-class.c: glade_widget_class_add_signals() + simplification. + 2006-08-22 Tristan Van Berkom <tvb@gnome.org> * widgets/gtk+.xml.in, widgets/gnome.xml.in: Fixed non-translatable strings on many diff --git a/src/glade-widget-class.c b/src/glade-widget-class.c index 36fd6f22..04670168 100644 --- a/src/glade-widget-class.c +++ b/src/glade-widget-class.c @@ -299,38 +299,24 @@ glade_widget_class_add_signals (GList **signals, GType type) } } -static gboolean -gwc_iface_not_implemented_by_parent (GType type, GType iface) -{ - GType *i, *p; - - type = g_type_parent (type); - if (g_type_is_a (type, G_TYPE_OBJECT) == FALSE) return TRUE; - - for (i = p = g_type_interfaces (type, NULL); *i; i++) - if (*i == iface) { g_free (p); return FALSE; } - - g_free (p); - return TRUE; -} - static GList * glade_widget_class_list_signals (GladeWidgetClass *class) { GList *signals = NULL; - GType type, *i, *p; + GType type, parent, *i, *p; g_return_val_if_fail (class->type != 0, NULL); - for (type = class->type; g_type_is_a (type, G_TYPE_OBJECT); - type = g_type_parent (type)) + for (type = class->type; g_type_is_a (type, G_TYPE_OBJECT); type = parent) { + parent = g_type_parent (type); + /* Add class signals */ glade_widget_class_add_signals (&signals, type); /* Add class interfaces signals */ for (i = p = g_type_interfaces (type, NULL); *i; i++) - if (gwc_iface_not_implemented_by_parent (type, *i)) + if (!glade_util_class_implements_interface (parent, *i)) glade_widget_class_add_signals (&signals, *i); g_free (p); |