summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Pablo Ugarte <jpu@src.gnome.org>2006-11-28 22:42:43 +0000
committerJuan Pablo Ugarte <jpu@src.gnome.org>2006-11-28 22:42:43 +0000
commit1c90a02568b5d22091995d5ea0222b885838e469 (patch)
treece76d4bde440fdfa00f3e3ec3b699b39858f2e33
parent612769dc283ea45e62c019c7f399ab82c837655d (diff)
downloadglade-1c90a02568b5d22091995d5ea0222b885838e469.tar.gz
o reference adaptor->type class in glade_widget_adaptor_constructor()
* src/glade-widget-adaptor.c: o reference adaptor->type class in glade_widget_adaptor_constructor() because gwa_setup_properties() and gwa_list_signals() need this. o added extra checks in adaptor methods g_type_is_a (G_OBJECT_TYPE (object), adaptor->type) now we can safelly get rid of checks in the plugin code.
-rw-r--r--ChangeLog9
-rw-r--r--src/glade-widget-adaptor.c39
2 files changed, 35 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index c5f76f45..73b10206 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2006-11-28 Juan Pablo Ugarte <juanpablougarte@gmail.com>
+
+ * src/glade-widget-adaptor.c:
+ o reference adaptor->type class in glade_widget_adaptor_constructor()
+ because gwa_setup_properties() and gwa_list_signals() need this.
+ o added extra checks in adaptor methods
+ g_type_is_a (G_OBJECT_TYPE (object), adaptor->type)
+ now we can safelly get rid of checks in the plugin code.
+
2006-11-22 Juan Pablo Ugarte <juanpablougarte@gmail.com>
* configure.in: added PYGTK_REQ_MAYOR, PYGTK_REQ_MINOR and
diff --git a/src/glade-widget-adaptor.c b/src/glade-widget-adaptor.c
index 042f1e0e..2e270888 100644
--- a/src/glade-widget-adaptor.c
+++ b/src/glade-widget-adaptor.c
@@ -475,9 +475,9 @@ gwa_setup_introspected_props_from_pspecs (GladeWidgetAdaptor *adaptor,
*/
static void
gwa_setup_properties (GladeWidgetAdaptor *adaptor,
+ GObjectClass *object_class,
gboolean is_packing)
{
- GObjectClass *object_class;
GParamSpec **specs = NULL;
guint n_specs = 0;
GList *l;
@@ -486,14 +486,6 @@ gwa_setup_properties (GladeWidgetAdaptor *adaptor,
if (is_packing && !g_type_is_a (adaptor->type, GTK_TYPE_CONTAINER))
return;
- /* Let it leek */
- if ((object_class = g_type_class_ref (adaptor->type)) == NULL)
- {
- g_critical ("Failed to get class for type %s\n",
- g_type_name (adaptor->type));
- return;
- }
-
/* First clone the parents properties */
if (is_packing)
adaptor->packing_props = gwa_clone_parent_properties (adaptor, is_packing);
@@ -604,6 +596,7 @@ glade_widget_adaptor_constructor (GType type,
{
GladeWidgetAdaptor *adaptor;
GObject *ret_obj;
+ GObjectClass *object_class;
glade_abort_if_derived_adaptors_exist (type);
@@ -621,10 +614,17 @@ glade_widget_adaptor_constructor (GType type,
gwa_load_icons (adaptor);
gwa_create_cursor (adaptor);
- /* Build signals & properties */
- adaptor->signals = gwa_list_signals (adaptor);
- gwa_setup_properties (adaptor, FALSE);
- gwa_setup_properties (adaptor, TRUE);
+ /* Let it leek */
+ if ((object_class = g_type_class_ref (adaptor->type)))
+ {
+ /* Build signals & properties */
+ adaptor->signals = gwa_list_signals (adaptor);
+ gwa_setup_properties (adaptor, object_class, FALSE);
+ gwa_setup_properties (adaptor, object_class, TRUE);
+ }
+ else
+ g_critical ("Failed to get class for type %s\n",
+ g_type_name (adaptor->type));
/* Inherit packing defaults here */
adaptor->child_packings = gwa_inherit_child_packing (adaptor);
@@ -1996,6 +1996,7 @@ glade_widget_adaptor_post_create (GladeWidgetAdaptor *adaptor,
{
g_return_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor));
g_return_if_fail (G_IS_OBJECT (object));
+ g_return_if_fail (g_type_is_a (G_OBJECT_TYPE (object), adaptor->type));
if (GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->post_create)
GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->post_create (adaptor, object, reason);
@@ -2020,6 +2021,7 @@ glade_widget_adaptor_get_internal_child (GladeWidgetAdaptor *adaptor,
g_return_val_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor), NULL);
g_return_val_if_fail (G_IS_OBJECT (object), NULL);
g_return_val_if_fail (internal_name != NULL, NULL);
+ g_return_val_if_fail (g_type_is_a (G_OBJECT_TYPE (object), adaptor->type), NULL);
if (GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->get_internal_child)
return GLADE_WIDGET_ADAPTOR_GET_CLASS
@@ -2043,6 +2045,7 @@ glade_widget_adaptor_launch_editor (GladeWidgetAdaptor *adaptor,
{
g_return_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor));
g_return_if_fail (G_IS_OBJECT (object));
+ g_return_if_fail (g_type_is_a (G_OBJECT_TYPE (object), adaptor->type));
if (GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->launch_editor)
GLADE_WIDGET_ADAPTOR_GET_CLASS
@@ -2071,6 +2074,7 @@ glade_widget_adaptor_set_property (GladeWidgetAdaptor *adaptor,
g_return_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor));
g_return_if_fail (G_IS_OBJECT (object));
g_return_if_fail (property_name != NULL && value != NULL);
+ g_return_if_fail (g_type_is_a (G_OBJECT_TYPE (object), adaptor->type));
/* The base class provides an implementation */
GLADE_WIDGET_ADAPTOR_GET_CLASS
@@ -2097,6 +2101,7 @@ glade_widget_adaptor_get_property (GladeWidgetAdaptor *adaptor,
g_return_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor));
g_return_if_fail (G_IS_OBJECT (object));
g_return_if_fail (property_name != NULL && value != NULL);
+ g_return_if_fail (g_type_is_a (G_OBJECT_TYPE (object), adaptor->type));
/* The base class provides an implementation */
GLADE_WIDGET_ADAPTOR_GET_CLASS
@@ -2129,6 +2134,7 @@ glade_widget_adaptor_verify_property (GladeWidgetAdaptor *adaptor,
g_return_val_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor), FALSE);
g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
g_return_val_if_fail (property_name != NULL && value != NULL, FALSE);
+ g_return_val_if_fail (g_type_is_a (G_OBJECT_TYPE (object), adaptor->type), FALSE);
if (GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->verify_property)
return GLADE_WIDGET_ADAPTOR_GET_CLASS
@@ -2153,6 +2159,7 @@ glade_widget_adaptor_add (GladeWidgetAdaptor *adaptor,
g_return_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor));
g_return_if_fail (G_IS_OBJECT (container));
g_return_if_fail (G_IS_OBJECT (child));
+ g_return_if_fail (g_type_is_a (G_OBJECT_TYPE (container), adaptor->type));
if (GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->add)
GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->add (adaptor, container, child);
@@ -2177,6 +2184,7 @@ glade_widget_adaptor_remove (GladeWidgetAdaptor *adaptor,
g_return_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor));
g_return_if_fail (G_IS_OBJECT (container));
g_return_if_fail (G_IS_OBJECT (child));
+ g_return_if_fail (g_type_is_a (G_OBJECT_TYPE (container), adaptor->type));
if (GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->remove)
GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->remove (adaptor, container, child);
@@ -2199,6 +2207,7 @@ glade_widget_adaptor_get_children (GladeWidgetAdaptor *adaptor,
{
g_return_val_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor), NULL);
g_return_val_if_fail (G_IS_OBJECT (container), NULL);
+ g_return_val_if_fail (g_type_is_a (G_OBJECT_TYPE (container), adaptor->type), NULL);
if (GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->get_children)
return GLADE_WIDGET_ADAPTOR_GET_CLASS
@@ -2261,6 +2270,7 @@ glade_widget_adaptor_child_set_property (GladeWidgetAdaptor *adaptor,
g_return_if_fail (G_IS_OBJECT (container));
g_return_if_fail (G_IS_OBJECT (child));
g_return_if_fail (property_name != NULL && value != NULL);
+ g_return_if_fail (g_type_is_a (G_OBJECT_TYPE (container), adaptor->type));
if (GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->child_set_property)
GLADE_WIDGET_ADAPTOR_GET_CLASS
@@ -2292,6 +2302,7 @@ glade_widget_adaptor_child_get_property (GladeWidgetAdaptor *adaptor,
g_return_if_fail (G_IS_OBJECT (container));
g_return_if_fail (G_IS_OBJECT (child));
g_return_if_fail (property_name != NULL && value != NULL);
+ g_return_if_fail (g_type_is_a (G_OBJECT_TYPE (container), adaptor->type));
if (GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->child_get_property)
GLADE_WIDGET_ADAPTOR_GET_CLASS
@@ -2329,6 +2340,7 @@ glade_widget_adaptor_child_verify_property (GladeWidgetAdaptor *adaptor,
g_return_val_if_fail (G_IS_OBJECT (container), FALSE);
g_return_val_if_fail (G_IS_OBJECT (child), FALSE);
g_return_val_if_fail (property_name != NULL && value != NULL, FALSE);
+ g_return_val_if_fail (g_type_is_a (G_OBJECT_TYPE (container), adaptor->type), FALSE);
if (GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->child_verify_property)
return GLADE_WIDGET_ADAPTOR_GET_CLASS
@@ -2361,6 +2373,7 @@ glade_widget_adaptor_replace_child (GladeWidgetAdaptor *adaptor,
g_return_if_fail (G_IS_OBJECT (container));
g_return_if_fail (G_IS_OBJECT (old));
g_return_if_fail (G_IS_OBJECT (new));
+ g_return_if_fail (g_type_is_a (G_OBJECT_TYPE (container), adaptor->type));
if (GLADE_WIDGET_ADAPTOR_GET_CLASS (adaptor)->replace_child)
GLADE_WIDGET_ADAPTOR_GET_CLASS