From: Andrea Zagli <azagli@libero.it> Date: Sat, 26 Nov 2011 10:20:45 +0000 (+0100) Subject: Bugfix on GdaEx::fill_liststore_from_* for int columns (fixes #223). X-Git-Tag: 0.5.0~18 X-Git-Url: https://saetta.ns0.it/gitweb?a=commitdiff_plain;h=6095be805b8f54ef440af4e0312a3557212410a7;p=libgdaex Bugfix on GdaEx::fill_liststore_from_* for int columns (fixes #223). Added test for GdaEx::fill_liststore_from_*. --- diff --git a/.anjuta_sym_db.db b/.anjuta_sym_db.db index 60e368a..84813a4 100644 Binary files a/.anjuta_sym_db.db and b/.anjuta_sym_db.db differ diff --git a/.gitignore b/.gitignore index 97f9e2f..7c0a49c 100644 --- a/.gitignore +++ b/.gitignore @@ -41,5 +41,6 @@ libgdaex*tar* tests/test_prefix* tests/query_editor tests/grid +tests/fill_liststore tests/*.exe tests/select diff --git a/src/gdaex.c b/src/gdaex.c index 867cf3d..39bce68 100644 --- a/src/gdaex.c +++ b/src/gdaex.c @@ -2785,6 +2785,7 @@ gdaex_fill_liststore_from_datamodel (GdaEx *gdaex, gint *columns; GValue *values; + gint ival; gdouble dval; GDateTime *gdatetime; @@ -2834,6 +2835,10 @@ gdaex_fill_liststore_from_datamodel (GdaEx *gdaex, break; case G_TYPE_INT: + ival = gdaex_data_model_iter_get_value_integer_at (gda_iter, col); + g_value_set_string (&gval, gdaex_format_money ((gdouble)ival, 0, FALSE)); + break; + case G_TYPE_FLOAT: case G_TYPE_DOUBLE: dval = gdaex_data_model_iter_get_value_double_at (gda_iter, col); diff --git a/tests/Makefile.am b/tests/Makefile.am index 325b705..90578fa 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -5,7 +5,8 @@ AM_CPPFLAGS = $(GDAEX_CFLAGS) \ -I$(top_srcdir)/src \ -DTESTSDIR="\"@abs_builddir@\"" -noinst_PROGRAMS = grid \ +noinst_PROGRAMS = fill_liststore \ + grid \ query_editor \ select \ test_prefix diff --git a/tests/fill_liststore.c b/tests/fill_liststore.c new file mode 100644 index 0000000..214d1e6 --- /dev/null +++ b/tests/fill_liststore.c @@ -0,0 +1,121 @@ +/* + * Copyright (C) 2011 Andrea Zagli <azagli@libero.it> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include <gtk/gtk.h> +#include <libgdaex.h> + +int +main (int argc, char **argv) +{ + GtkWidget *w; + GtkWidget *scrolledw; + GtkListStore *lstore; + GtkWidget *tview; + GtkTreeViewColumn *column; + GtkCellRenderer *renderer; + + GdaEx *gdaex; + + gchar *sql; + + gtk_init (&argc, &argv); + + gdaex = gdaex_new_from_string (g_strdup_printf ("SQLite://DB_DIR=%s;DB_NAME=grid.db", TESTSDIR)); + if (gdaex == NULL) + { + g_error ("Unable to connect to the db."); + } + + w = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_default_size (GTK_WINDOW (w), 550, 350); + + scrolledw = gtk_scrolled_window_new (NULL, NULL); + gtk_container_add (GTK_CONTAINER (w), scrolledw); + + lstore = gtk_list_store_new (7, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_STRING); + + tview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (lstore)); + + renderer = gtk_cell_renderer_text_new (); + column = gtk_tree_view_column_new_with_attributes ("ID", + renderer, + "text", 0, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (tview), column); + + renderer = gtk_cell_renderer_text_new (); + column = gtk_tree_view_column_new_with_attributes ("Name", + renderer, + "text", 1, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (tview), column); + + renderer = gtk_cell_renderer_text_new (); + column = gtk_tree_view_column_new_with_attributes ("Surname", + renderer, + "text", 2, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (tview), column); + + renderer = gtk_cell_renderer_text_new (); + column = gtk_tree_view_column_new_with_attributes ("Age", + renderer, + "text", 3, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (tview), column); + + renderer = gtk_cell_renderer_text_new (); + column = gtk_tree_view_column_new_with_attributes ("Birthday", + renderer, + "text", 4, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (tview), column); + + renderer = gtk_cell_renderer_text_new (); + column = gtk_tree_view_column_new_with_attributes ("Incoming", + renderer, + "text", 5, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (tview), column); + + renderer = gtk_cell_renderer_text_new (); + column = gtk_tree_view_column_new_with_attributes ("Married", + renderer, + "text", 6, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (tview), column); + + sql = g_strdup_printf ("SELECT * FROM clients"); + gdaex_fill_liststore_from_sql (gdaex, lstore, sql, NULL, NULL); + g_free (sql); + + gtk_container_add (GTK_CONTAINER (scrolledw), tview); + + gtk_widget_show_all (w); + + gtk_main (); + + return 0; +}