[glade3] * gladeui/glade-signal.c: Fire a warning when signal class is not found for signal read in by gl
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade3] * gladeui/glade-signal.c: Fire a warning when signal class is not found for signal read in by gl
- Date: Wed, 12 Jan 2011 08:48:00 +0000 (UTC)
commit ad347d832d22fc688e5d409cc606c218c7eeae98
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date: Wed Jan 12 17:54:59 2011 +0900
* gladeui/glade-signal.c: Fire a warning when signal class is not found for signal
read in by glade_signal_read from the xml (this happens because GTK+-3 removes some
signals).
ChangeLog | 4 ++++
gladeui/glade-signal.c | 28 ++++++++++++++++++----------
2 files changed, 22 insertions(+), 10 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index e3121fa..40d6b55 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,10 @@
* gladeui/glade-widget.c: Fixed access of NULL project at glade_widget_show/hide time.
+ * gladeui/glade-signal.c: Fire a warning when signal class is not found for signal
+ read in by glade_signal_read from the xml (this happens because GTK+-3 removes some
+ signals).
+
2011-01-10 Tristan Van Berkom <tristanvb openismus com>
* gladeui/glade-signal-model.[ch]:
diff --git a/gladeui/glade-signal.c b/gladeui/glade-signal.c
index 4cdf7c5..73efb99 100644
--- a/gladeui/glade-signal.c
+++ b/gladeui/glade-signal.c
@@ -363,7 +363,8 @@ glade_signal_write (GladeSignal * signal,
GladeSignal *
glade_signal_read (GladeXmlNode * node, GladeWidgetAdaptor* adaptor)
{
- GladeSignal *signal;
+ GladeSignal *signal = NULL;
+ GladeSignalClass *signal_class;
gchar *name, *handler, *userdata;
g_return_val_if_fail (glade_xml_node_verify_silent
@@ -383,15 +384,22 @@ glade_signal_read (GladeXmlNode * node, GladeWidgetAdaptor* adaptor)
return NULL;
}
-
- userdata = glade_xml_get_property_string (node, GLADE_XML_TAG_OBJECT);
-
- signal =
- glade_signal_new (glade_widget_adaptor_get_signal_class (adaptor, name),
- handler, userdata,
- glade_xml_get_property_boolean (node, GLADE_XML_TAG_AFTER, FALSE),
- glade_xml_get_property_boolean (node, GLADE_XML_TAG_SWAPPED,
- userdata != NULL));
+ userdata = glade_xml_get_property_string (node, GLADE_XML_TAG_OBJECT);
+ signal_class = glade_widget_adaptor_get_signal_class (adaptor, name);
+
+ if (signal_class)
+ signal =
+ glade_signal_new (signal_class,
+ handler, userdata,
+ glade_xml_get_property_boolean (node, GLADE_XML_TAG_AFTER, FALSE),
+ glade_xml_get_property_boolean (node, GLADE_XML_TAG_SWAPPED,
+ userdata != NULL));
+ else
+ {
+ /* XXX These errors should be collected and reported to the user */
+ g_warning ("No signal %s was found for class %s, skipping\n",
+ name, glade_widget_adaptor_get_name (adaptor));
+ }
g_free (name);
g_free (handler);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]