summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Pablo Ugarte <jp@synctv.com>2009-05-17 17:26:24 -0300
committerJuan Pablo Ugarte <jp@synctv.com>2009-05-17 17:26:24 -0300
commite28fd448e15040c77758504c210c247b52669b30 (patch)
tree02fb6963a2b7c9cec05aad1a72ae5d9c4a06fbe5
parentc3b47bdd386d073105f6ea80712d84f41f980ce1 (diff)
downloadglade-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--ChangeLog8
-rw-r--r--gladeui/glade-base-editor.c9
-rw-r--r--gladeui/glade-widget-adaptor.c24
3 files changed, 27 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index f5805bfd..4b134ebb 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 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;