diff options
author | Johan Dahlin <johan@gnome.org> | 2008-05-30 11:04:30 +0000 |
---|---|---|
committer | Johan Dahlin <johan@src.gnome.org> | 2008-05-30 11:04:30 +0000 |
commit | 2f5d8366351ac12bbaa08cc5cd3182d19b093e66 (patch) | |
tree | 0f213f883556ba63f032a5d55e1ac9bc14cdb666 | |
parent | 3b3bf932791b0391cb4a232136742efb8f1ac518 (diff) | |
download | gdk-pixbuf-2f5d8366351ac12bbaa08cc5cd3182d19b093e66.tar.gz |
Merge from trunk:
2008-05-25 Johan Dahlin <johan@gnome.org>
Merge from trunk:
* gtk/gtkliststore.c: (list_store_text): Use type of the correct
column (#529535).
* tests/buildertest.c: (test_list_store): Add test.
svn path=/branches/gtk-2-12/; revision=20252
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | gtk/gtkliststore.c | 4 | ||||
-rw-r--r-- | tests/buildertest.c | 71 |
3 files changed, 81 insertions, 2 deletions
@@ -1,3 +1,11 @@ +2008-05-25 Johan Dahlin <johan@gnome.org> + + Merge from trunk: + + * gtk/gtkliststore.c: (list_store_text): Use type of the correct + column (#529535). + * tests/buildertest.c: (test_list_store): Add test. + 2008-05-30 Tor Lillqvist <tml@novell.com> Bug 533108 - leak of GDI region in function 'handle_wm_paint' diff --git a/gtk/gtkliststore.c b/gtk/gtkliststore.c index 617a5fedd..81486b177 100644 --- a/gtk/gtkliststore.c +++ b/gtk/gtkliststore.c @@ -2197,7 +2197,7 @@ list_store_text (GMarkupParseContext *context, string = g_strndup (text, text_len); if (!gtk_builder_value_from_string_type (data->builder, - data->column_types[i], + data->column_types[info->id], string, &data->values[i], &tmp_error)) @@ -2206,7 +2206,7 @@ list_store_text (GMarkupParseContext *context, tmp_error->domain, tmp_error->code, "Could not convert '%s' to type %s: %s\n", - text, g_type_name (data->column_types[i]), + text, g_type_name (data->column_types[info->id]), tmp_error->message); g_error_free (tmp_error); } diff --git a/tests/buildertest.c b/tests/buildertest.c index aed4aeaa9..e3e22bd3c 100644 --- a/tests/buildertest.c +++ b/tests/buildertest.c @@ -545,6 +545,31 @@ gboolean test_list_store (void) " </data>" " </object>" "</interface>"; + const char buffer3[] = + "<interface>" + " <object class=\"GtkListStore\" id=\"liststore1\">" + " <columns>" + " <column type=\"gchararray\"/>" + " <column type=\"gchararray\"/>" + " <column type=\"gint\"/>" + " </columns>" + " <data>" + " <row>" + " <col id=\"1\" context=\"foo\">Doe</col>" + " <col id=\"0\" translatable=\"yes\">John</col>" + " <col id=\"2\" comment=\"foobar\">25</col>" + " </row>" + " <row>" + " <col id=\"2\">50</col>" + " <col id=\"1\">Dole</col>" + " <col id=\"0\">Johan</col>" + " </row>" + " <row>" + " <col id=\"2\">19</col>" + " </row>" + " </data>" + " </object>" + "</interface>"; GtkBuilder *builder; GObject *store; GtkTreeIter iter; @@ -594,6 +619,52 @@ gboolean test_list_store (void) g_return_val_if_fail (age == 50, FALSE); g_return_val_if_fail (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter) == FALSE, FALSE); + builder = builder_new_from_string (buffer3, -1, NULL); + store = gtk_builder_get_object (builder, "liststore1"); + g_assert (gtk_tree_model_get_n_columns (GTK_TREE_MODEL (store)) == 3); + g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 0) == G_TYPE_STRING); + g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 1) == G_TYPE_STRING); + g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 2) == G_TYPE_INT); + + g_assert (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter) == TRUE); + gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, + 0, &surname, + 1, &lastname, + 2, &age, + -1); + g_assert (surname != NULL); + g_assert (strcmp (surname, "John") == 0); + g_free (surname); + g_assert (lastname != NULL); + g_assert (strcmp (lastname, "Doe") == 0); + g_free (lastname); + g_assert (age == 25); + g_assert (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter) == TRUE); + + gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, + 0, &surname, + 1, &lastname, + 2, &age, + -1); + g_assert (surname != NULL); + g_assert (strcmp (surname, "Johan") == 0); + g_free (surname); + g_assert (lastname != NULL); + g_assert (strcmp (lastname, "Dole") == 0); + g_free (lastname); + g_assert (age == 50); + g_assert (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter) == TRUE); + + gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, + 0, &surname, + 1, &lastname, + 2, &age, + -1); + g_assert (surname == NULL); + g_assert (lastname == NULL); + g_assert (age == 19); + g_assert (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter) == FALSE); + g_object_unref (builder); return TRUE; |