From ebde003b2ebc1f3cc97dbd787982dcf8d6bdabd8 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 21 Sep 2011 16:57:04 +0200 Subject: [PATCH] Finita la funzione SolipaUtils::gtktreemodel_copy. Aggiunto il test per SolipaUtils::gtktreemodel_copy. Aggiunti i file di Anjuta. closes #37 --- .anjuta/default.profile | 28 +++++ .anjuta/session/anjuta.session | 26 +++++ .anjuta/session/dock-layout.xml | 2 + .anjuta_sym_db.db | Bin 0 -> 983040 bytes .gitignore | 1 + libsolipa.anjuta | 47 +++++++++ src/utils.c | 90 ++++++++++++---- tests/Makefile.am | 1 + tests/utils_gtktreemodel_copy.c | 182 ++++++++++++++++++++++++++++++++ 9 files changed, 354 insertions(+), 23 deletions(-) create mode 100644 .anjuta/default.profile create mode 100644 .anjuta/session/anjuta.session create mode 100644 .anjuta/session/dock-layout.xml create mode 100644 .anjuta_sym_db.db create mode 100644 libsolipa.anjuta create mode 100644 tests/utils_gtktreemodel_copy.c diff --git a/.anjuta/default.profile b/.anjuta/default.profile new file mode 100644 index 0000000..6937de0 --- /dev/null +++ b/.anjuta/default.profile @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + diff --git a/.anjuta/session/anjuta.session b/.anjuta/session/anjuta.session new file mode 100644 index 0000000..b447efe --- /dev/null +++ b/.anjuta/session/anjuta.session @@ -0,0 +1,26 @@ + +[Anjuta] +Maximized=1 +Geometry=1365x746+1+0 + +[Project Manager] +Shortcut=libsolipa//libsolipa//src//libsolipa.la%%%libsolipa//libsolipa//src//libsolipaooo.la%%%libsolipa//libsolipa//tests//allegato%%%libsolipa//libsolipa//tests//mail%%%libsolipa//libsolipa//tests//mail_get_addresses_from_string%%%libsolipa//libsolipa//tests//mailui%%%libsolipa//libsolipa//tests//ooo%%%libsolipa//libsolipa//tests//progresswindow%%%libsolipa//libsolipa//tests//utils%%%libsolipa//libsolipa//tests//utils_codfisc_piva%%%libsolipa//libsolipa//tests//utils_format_money%%%libsolipa//libsolipa//tests//utils_gdatetime%%%libsolipa//libsolipa//tests//utils_infobar%%%libsolipa//libsolipa//tests//utils_round +Expand=libsolipa.la%%%libsolipa + +[Document Manager] +bookmarks=\n\n + +[Execution] +Run in terminal=2 +Working directories=file:///home/andreaz/files/comune/solipa/libsolipa + +[Build] +Configuration list=1:Default:%%%1:Debug:Debug%%%1:Profiling:Profiling%%%1:Optimized:Optimized +Selected Configuration=Default +BuildArgs/Default=--enable-maintainer-mode +BuildArgs/Debug=--enable-maintainer-mode 'CFLAGS=-g -O0' 'CXXFLAGS=-g -O0' 'JFLAGS=-g -O0' 'FFLAGS=-g -O0' +BuildArgs/Profiling=--enable-maintainer-mode 'CFLAGS=-g -pg' 'CXXFLAGS=-g -pg' 'JFLAGS=-g -pg' 'FFLAGS=-g -pg' +BuildArgs/Optimized=--enable-maintainer-mode 'CFLAGS=-O2' 'CXXFLAGS=-O2' 'JFLAGS=-O2' 'FFLAGS=-O2' + +[Debugger] +Stop at beginning=2 diff --git a/.anjuta/session/dock-layout.xml b/.anjuta/session/dock-layout.xml new file mode 100644 index 0000000..b35c6db --- /dev/null +++ b/.anjuta/session/dock-layout.xml @@ -0,0 +1,2 @@ + + diff --git a/.anjuta_sym_db.db b/.anjuta_sym_db.db new file mode 100644 index 0000000000000000000000000000000000000000..3dbbcb5d8f48a1530b4ba1fbb7d22c95650bc750 GIT binary patch literal 983040 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 + + + + + + + + + + + + + + + + + + + + + diff --git a/src/utils.c b/src/utils.c index 8d48408..9da2b57 100644 --- a/src/utils.c +++ b/src/utils.c @@ -511,6 +511,68 @@ GType return ret; } +static void +solipa_gtktreemodel_copy_iter (GtkTreeModel *ret, + GtkTreeModel *model, + GtkTreeModel *model_child, + gboolean is_list_store, + guint cols, + GtkTreeIter *iter, + GtkTreeIter *iter_parent) +{ + GtkTreeIter iter_new; + GtkTreeIter iter_child; + + guint col; + + do + { + if (is_list_store) + { + gtk_list_store_append (GTK_LIST_STORE (ret), &iter_new); + } + else + { + gtk_tree_store_append (GTK_TREE_STORE (ret), &iter_new, iter_parent); + } + + for (col = 0; col < cols; col++) + { + GValue gval = {0}; + + if (model_child != NULL) + { + gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model), &iter_child, iter); + gtk_tree_model_get_value (model_child, &iter_child, col, &gval); + } + else + { + gtk_tree_model_get_value (model, iter, col, &gval); + } + + if (is_list_store) + { + gtk_list_store_set_value (GTK_LIST_STORE (ret), &iter_new, col, &gval); + } + else + { + gtk_tree_store_set_value (GTK_TREE_STORE (ret), &iter_new, col, &gval); + } + + g_value_unset (&gval); + } + + if (!is_list_store) + { + /* is_tree_store */ + if (gtk_tree_model_iter_children (model, &iter_child, iter)) + { + solipa_gtktreemodel_copy_iter (ret, model, model_child, is_list_store, cols, &iter_child, &iter_new); + } + } + } while (gtk_tree_model_iter_next (model, iter)); +} + GtkTreeModel *solipa_gtktreemodel_copy (GtkTreeModel *model, gboolean only_schema) { @@ -524,8 +586,6 @@ GtkTreeModel GtkTreeModel *model_child; GtkTreeIter iter; - GtkTreeIter iter_child; - GtkTreeIter iter_new; ret = NULL; @@ -550,26 +610,7 @@ GtkTreeModel { if (gtk_tree_model_get_iter_first (model, &iter)) { - do - { - gtk_list_store_append (GTK_LIST_STORE (ret), &iter_new); - for (col = 0; col < cols; col++) - { - GValue gval = {0}; - - if (model_child != NULL) - { - gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model), &iter_child, &iter); - gtk_tree_model_get_value (model_child, &iter_child, col, &gval); - } - else - { - gtk_tree_model_get_value (model, &iter, col, &gval); - } - gtk_list_store_set_value (GTK_LIST_STORE (ret), &iter_new, col, &gval); - g_value_unset (&gval); - } - } while (gtk_tree_model_iter_next (model, &iter)); + solipa_gtktreemodel_copy_iter (ret, model, model_child, TRUE, cols, &iter, NULL); } } } @@ -580,7 +621,10 @@ GtkTreeModel if (!only_schema) { - + if (gtk_tree_model_get_iter_first (model, &iter)) + { + solipa_gtktreemodel_copy_iter (ret, model, model_child, FALSE, cols, &iter, NULL); + } } } else diff --git a/tests/Makefile.am b/tests/Makefile.am index e80c512..864b442 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -23,5 +23,6 @@ noinst_PROGRAMS = allegato \ utils_codfisc_piva \ utils_format_money \ utils_gdatetime \ + utils_gtktreemodel_copy \ utils_infobar \ utils_round diff --git a/tests/utils_gtktreemodel_copy.c b/tests/utils_gtktreemodel_copy.c new file mode 100644 index 0000000..f2ddc56 --- /dev/null +++ b/tests/utils_gtktreemodel_copy.c @@ -0,0 +1,182 @@ +/* + * Copyright (C) 2011 Andrea Zagli + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +GtkTreeModel *copia; + +guint id; +gchar *cognome; +gchar *nome; + +static void +do_child (GtkTreeIter *iter) +{ + GtkTreeIter iter_child; + + do + { + gtk_tree_model_get (copia, iter, + 0, &id, + 1, &cognome, + 2, &nome, + -1); + g_printf ("%d\t%s\t%s\n", id, cognome, nome); + + if (gtk_tree_model_iter_children (copia, &iter_child, iter)) + { + do_child (&iter_child); + } + } while (gtk_tree_model_iter_next (copia, iter)); +} + +int +main (int argc, char *argv[]) +{ + GtkTreeModel *model; + GtkTreeIter iter; + GtkTreeIter iter_child; + + gtk_init (&argc, &argv); + + /* copia di un LIST_STORE */ + g_printf ("COPIA DEL LIST_STORE\n" + "====================\n"); + + model = GTK_TREE_MODEL (gtk_list_store_new (3, + G_TYPE_INT, + G_TYPE_STRING, + G_TYPE_STRING)); + + gtk_list_store_append (GTK_LIST_STORE (model), &iter); + gtk_list_store_set (GTK_LIST_STORE (model), &iter, + 0, 1, + 1, "Rossi", + 2, "Mario", + -1); + gtk_list_store_append (GTK_LIST_STORE (model), &iter); + gtk_list_store_set (GTK_LIST_STORE (model), &iter, + 0, 2, + 1, "Verdi", + 2, "Giuseppe", + -1); + gtk_list_store_append (GTK_LIST_STORE (model), &iter); + gtk_list_store_set (GTK_LIST_STORE (model), &iter, + 0, 3, + 1, "Bianchi", + 2, "Giovanna", + -1); + + copia = solipa_gtktreemodel_copy (model, FALSE); + + if (gtk_tree_model_get_iter_first (copia, &iter)) + { + do + { + gtk_tree_model_get (copia, &iter, + 0, &id, + 1, &cognome, + 2, &nome, + -1); + g_printf ("%d\t%s\t%s\n", id, cognome, nome); + } while (gtk_tree_model_iter_next (copia, &iter)); + } + else + { + g_error ("Copia del GTK_LIST_STORE vuota."); + } + + /* copia di un TREE_STORE */ + g_printf ("\n\nCOPIA DEL TREE_STORE\n" + "====================\n"); + + model = GTK_TREE_MODEL (gtk_tree_store_new (3, + G_TYPE_INT, + G_TYPE_STRING, + G_TYPE_STRING)); + + gtk_tree_store_append (GTK_TREE_STORE (model), &iter, NULL); + gtk_tree_store_set (GTK_TREE_STORE (model), &iter, + 0, 1, + 1, "Rossi", + 2, "Mario", + -1); + gtk_tree_store_append (GTK_TREE_STORE (model), &iter_child, &iter); + gtk_tree_store_set (GTK_TREE_STORE (model), &iter_child, + 0, 11, + 1, "- Rossi", + 2, "Annamaria", + -1); + gtk_tree_store_append (GTK_TREE_STORE (model), &iter_child, &iter); + gtk_tree_store_set (GTK_TREE_STORE (model), &iter_child, + 0, 12, + 1, "- Rossi", + 2, "Giancarlo", + -1); + gtk_tree_store_append (GTK_TREE_STORE (model), &iter, NULL); + gtk_tree_store_set (GTK_TREE_STORE (model), &iter, + 0, 2, + 1, "Verdi", + 2, "Giuseppe", + -1); + gtk_tree_store_append (GTK_TREE_STORE (model), &iter_child, &iter); + gtk_tree_store_set (GTK_TREE_STORE (model), &iter_child, + 0, 21, + 1, "- Verdi", + 2, "Sandro", + -1); + gtk_tree_store_append (GTK_TREE_STORE (model), &iter, NULL); + gtk_tree_store_set (GTK_TREE_STORE (model), &iter, + 0, 3, + 1, "Bianchi", + 2, "Giovanna", + -1); + gtk_tree_store_append (GTK_TREE_STORE (model), &iter_child, &iter); + gtk_tree_store_set (GTK_TREE_STORE (model), &iter_child, + 0, 31, + 1, "- Bianchi", + 2, "Rosalia", + -1); + GtkTreeIter iter_child_child; + gtk_tree_store_append (GTK_TREE_STORE (model), &iter_child_child, &iter_child); + gtk_tree_store_set (GTK_TREE_STORE (model), &iter_child_child, + 0, 311, + 1, "-- Blu", + 2, "Rosso", + -1); + gtk_tree_store_append (GTK_TREE_STORE (model), &iter_child, &iter); + gtk_tree_store_set (GTK_TREE_STORE (model), &iter_child, + 0, 32, + 1, "- Bianchi", + 2, "Rosario", + -1); + + copia = solipa_gtktreemodel_copy (model, FALSE); + + if (gtk_tree_model_get_iter_first (copia, &iter)) + { + do_child (&iter); + } + else + { + g_error ("Copia del GTK_TREE_STORE vuota."); + } + + return 0; +} -- 2.49.0