[glade3] * gladeui/glade-base-editor.c: fixed bug in glade_base_editor_add_default_properties()



commit e28fd448e15040c77758504c210c247b52669b30
Author: Juan Pablo Ugarte <jp synctv com>
Date:   Sun May 17 17:26:24 2009 -0300

    * 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.
---
 ChangeLog                      |    8 ++++++++
 gladeui/glade-base-editor.c    |    9 +++------
 gladeui/glade-widget-adaptor.c |   24 ++++++++++++++++--------
 3 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index f5805bf..4b134eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 6a86423..e09dffe 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 6a1b221..42bee90 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;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]