diff options
author | Juan Pablo Ugarte <jp@synctv.com> | 2009-05-17 17:26:24 -0300 |
---|---|---|
committer | Juan Pablo Ugarte <jp@synctv.com> | 2009-05-17 17:26:24 -0300 |
commit | e28fd448e15040c77758504c210c247b52669b30 (patch) | |
tree | 02fb6963a2b7c9cec05aad1a72ae5d9c4a06fbe5 | |
parent | c3b47bdd386d073105f6ea80712d84f41f980ce1 (diff) | |
download | glade-e28fd448e15040c77758504c210c247b52669b30.tar.gz |
* gladeui/glade-base-editor.c: fixed bug in glade_base_editor_add_default_properties()
It was setting the wrong type model.
* gladeui/glade-widget-adaptor.c: use parent icon if none is found for the class
This helps a lot for custom composite widget.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | gladeui/glade-base-editor.c | 9 | ||||
-rw-r--r-- | gladeui/glade-widget-adaptor.c | 24 |
3 files changed, 27 insertions, 14 deletions
@@ -1,3 +1,11 @@ +2009-05-17 Juan Pablo Ugarte <juanpablougarte@gmail.com> + + * gladeui/glade-base-editor.c: fixed bug in glade_base_editor_add_default_properties() + It was setting the wrong type model. + + * gladeui/glade-widget-adaptor.c: use parent icon if none is found for the class + This helps a lot for custom composite widget. + 2009-04-29 Tristan Van Berkom <tvb@gnome.org> * gladeui/glade-project.c: Check project naming policy at add_object() time (bug 580745). diff --git a/gladeui/glade-base-editor.c b/gladeui/glade-base-editor.c index 6a86423d..e09dffe9 100644 --- a/gladeui/glade-base-editor.c +++ b/gladeui/glade-base-editor.c @@ -1959,16 +1959,13 @@ glade_base_editor_add_default_properties (GladeBaseEditor *editor, GtkWidget *label, *entry; GtkTreeModel *child_class; GtkCellRenderer *renderer; - gboolean retval; - GladeWidget *gparent; GObject *child = glade_widget_get_object (gchild); g_return_if_fail (GLADE_IS_BASE_EDITOR (editor)); g_return_if_fail (GLADE_IS_WIDGET (gchild)); g_return_if_fail (GLADE_IS_WIDGET (gchild->parent)); - gparent = glade_widget_get_parent (gchild); - child_class = get_children_model_for_type (editor, G_OBJECT_TYPE (gparent->object)); + child_class = get_children_model_for_type (editor, G_OBJECT_TYPE (child)); /* Name */ label = gtk_label_new (_("Name :")); @@ -1994,8 +1991,8 @@ glade_base_editor_add_default_properties (GladeBaseEditor *editor, gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (entry), renderer, "text", GLADE_BASE_EDITOR_CLASS_NAME, NULL); - if ((retval = glade_base_editor_get_type_info (editor, &combo_iter, - G_OBJECT_TYPE (child), -1))) + if (glade_base_editor_get_type_info (editor, &combo_iter, + G_OBJECT_TYPE (child), -1)) gtk_combo_box_set_active_iter (GTK_COMBO_BOX (entry), &combo_iter); g_signal_connect (entry, "changed", G_CALLBACK (glade_base_editor_type_changed), editor); diff --git a/gladeui/glade-widget-adaptor.c b/gladeui/glade-widget-adaptor.c index 6a1b2216..42bee903 100644 --- a/gladeui/glade-widget-adaptor.c +++ b/gladeui/glade-widget-adaptor.c @@ -257,17 +257,13 @@ glade_abort_if_derived_adaptors_exist (GType type) *******************************************************************************/ #define gwa_get_parent_adaptor(a) glade_widget_adaptor_get_parent_adaptor (a) -/* XXX DOCME - */ -GladeWidgetAdaptor * -glade_widget_adaptor_get_parent_adaptor (GladeWidgetAdaptor *adaptor) +static GladeWidgetAdaptor * +glade_widget_adaptor_get_parent_adaptor_by_type (GType adaptor_type) { GladeWidgetAdaptor *parent_adaptor = NULL; GType iter_type; - g_return_val_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor), NULL); - - for (iter_type = g_type_parent (adaptor->type); + for (iter_type = g_type_parent (adaptor_type); iter_type > 0; iter_type = g_type_parent (iter_type)) { @@ -279,6 +275,15 @@ glade_widget_adaptor_get_parent_adaptor (GladeWidgetAdaptor *adaptor) return NULL; } +/* XXX DOCME + */ +GladeWidgetAdaptor * +glade_widget_adaptor_get_parent_adaptor (GladeWidgetAdaptor *adaptor) +{ + g_return_val_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor), NULL); + + return glade_widget_adaptor_get_parent_adaptor_by_type (adaptor->type); +} static gint gwa_signal_comp (gconstpointer a, gconstpointer b) @@ -2000,9 +2005,12 @@ create_icon_name_for_object_class (const gchar *class_name, /* check if icon is available */ if (!gtk_icon_theme_has_icon (gtk_icon_theme_get_default (), name)) { + GladeWidgetAdaptor *parent = glade_widget_adaptor_get_parent_adaptor_by_type (class_type); g_warning ("No icon named '%s' was found for object class '%s'.", name, class_name); g_free (name); - name = g_strdup (DEFAULT_ICON_NAME); + + name = g_strdup ((parent && parent->icon_name) ? + parent->icon_name : DEFAULT_ICON_NAME); } return name; |