From c4833f7040abe22c9484bdfa14fdd70373a90419 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 28 Dec 2016 15:15:38 +0100 Subject: [PATCH] Utilizzo di GdaExGrid in tipi aggregazione territoriale. --- data/territorio/gui/territorio.gui | 371 ++++++++++++++++------------- src/tipiaggregazioneterritoriale.c | 115 +++------ 2 files changed, 237 insertions(+), 249 deletions(-) diff --git a/data/territorio/gui/territorio.gui b/data/territorio/gui/territorio.gui index 821fd3f..a724735 100644 --- a/data/territorio/gui/territorio.gui +++ b/data/territorio/gui/territorio.gui @@ -1,5 +1,5 @@ - + @@ -12,8 +12,8 @@ True normal Territorio - 0.0.1 - Andrea Zagli + 0.0.3 + Andrea Zagli <azagli@libero.it> 2010-2016 Andrea Zagli <azagli@libero.it> image-missing @@ -40,6 +40,9 @@ + + + @@ -237,6 +240,9 @@ + + + @@ -410,175 +416,8 @@ - - - False - Tipi aggregazioni territoriali - Territorio - True - center-on-parent - 550 - 400 - True - - - True - False - 5 - vertical - 5 - - - True - False - <b>Tipi aggregazioni territoriali</b> - True - - - False - True - 0 - - - - - True - True - etched-in - - - True - True - lstore_tipi_aggregazione_territoriale - False - True - 0 - - - - - - Nome - - - - 1 - - - - - - - - - True - True - 1 - - - - - True - False - 5 - end - - - E_sporta - False - True - True - True - True - - - False - False - 0 - - - - - gtk-new - False - True - True - True - True - - - False - False - 1 - - - - - gtk-edit - False - True - True - True - True - - - False - False - 2 - - - - - gtk-delete - False - True - True - True - True - - - False - False - 3 - - - - - gtk-cancel - False - True - True - True - True - - - False - False - 4 - - - - - gtk-ok - False - True - True - True - True - - - False - False - 5 - - - - - False - True - 2 - - - + + @@ -826,6 +665,9 @@ + + + False @@ -1056,6 +898,9 @@ + + + False @@ -1205,6 +1050,9 @@ + + + False @@ -1479,6 +1327,9 @@ + + + False @@ -1628,6 +1479,9 @@ + + + False @@ -1832,6 +1686,9 @@ + + + False @@ -1983,6 +1840,9 @@ + + + False @@ -2117,6 +1977,9 @@ + + + False @@ -2274,6 +2137,9 @@ + + + False @@ -2416,6 +2282,9 @@ + + + False @@ -2588,6 +2457,9 @@ + + + False @@ -2751,6 +2623,9 @@ + + + False @@ -2824,6 +2699,9 @@ + + + False @@ -3055,6 +2933,146 @@ + + + + + + False + Tipi aggregazioni territoriali - Territorio + True + center-on-parent + 550 + 400 + True + + + True + False + 5 + vertical + 5 + + + True + False + <b>Tipi aggregazioni territoriali</b> + True + + + False + True + 0 + + + + + True + True + etched-in + + + + + + True + True + 1 + + + + + True + False + 5 + end + + + gtk-new + False + True + True + True + True + + + False + False + 0 + + + + + gtk-edit + False + True + True + True + True + + + False + False + 2 + + + + + gtk-delete + False + True + True + True + True + + + False + False + 3 + + + + + gtk-cancel + False + True + True + True + True + + + False + False + 4 + + + + + gtk-ok + False + True + True + True + True + + + False + False + 5 + + + + + False + True + 2 + + + + + + + False @@ -3179,6 +3197,9 @@ + + + False @@ -3356,6 +3377,9 @@ + + + False @@ -3498,5 +3522,8 @@ + + + diff --git a/src/tipiaggregazioneterritoriale.c b/src/tipiaggregazioneterritoriale.c index 8c07260..a9963fb 100644 --- a/src/tipiaggregazioneterritoriale.c +++ b/src/tipiaggregazioneterritoriale.c @@ -19,6 +19,7 @@ #include #include +#include #include "tipiaggregazioneterritoriale.h" #include "tipoaggregazioneterritoriale.h" @@ -41,8 +42,6 @@ static void territorio_tipi_aggregazione_territoriale_get_property (GObject *obj GValue *value, GParamSpec *pspec); -static void territorio_tipi_aggregazione_territoriale_on_btn_esporta_clicked (GtkButton *button, - gpointer user_data); static void territorio_tipi_aggregazione_territoriale_on_btn_nuovo_clicked (GtkButton *button, gpointer user_data); static void territorio_tipi_aggregazione_territoriale_on_btn_modifica_clicked (GtkButton *button, @@ -73,8 +72,10 @@ struct _TerritorioTipiAggregazioneTerritorialePrivate TerritorioCommons *commons; GtkWidget *widget; + GdaExGrid *grid; + GtkWidget *wgrid; GtkTreeSelection *selection; - GtkListStore *lstore_tipi_aggregazione_territoriale; + GtkTreeStore *tstore_tipi_aggregazione_territoriale; gboolean selezione; GtkWindow *wtransient; @@ -127,6 +128,8 @@ TerritorioTipiAggregazioneTerritoriale GError *error; ZakAuthoIResource *ires1; + GdaExGridColumn *gcol; + TerritorioTipiAggregazioneTerritoriale *a = TERRITORIO_TIPI_AGGREGAZIONE_TERRITORIALE (g_object_new (territorio_tipi_aggregazione_territoriale_get_type (), NULL)); TerritorioTipiAggregazioneTerritorialePrivate *priv = TERRITORIO_TIPI_AGGREGAZIONE_TERRITORIALE_GET_PRIVATE (a); @@ -136,8 +139,7 @@ TerritorioTipiAggregazioneTerritoriale error = NULL; gtk_builder_add_objects_from_file (priv->commons->gtkbuilder, priv->commons->guifile, - g_strsplit (g_strconcat ("lstore_tipi_aggregazione_territoriale|", - (selezione ? "w_tipi_aggregazione_territoriale" : "vbox10"), + g_strsplit (g_strconcat ((selezione ? "w_tipi_aggregazione_territoriale" : "vbox10"), NULL), "|", -1), &error); @@ -148,8 +150,25 @@ TerritorioTipiAggregazioneTerritoriale } priv->widget = GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, (selezione ? "w_tipi_aggregazione_territoriale" : "vbox10"))); - priv->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (gtk_builder_get_object (priv->commons->gtkbuilder, "treeview5"))); - priv->lstore_tipi_aggregazione_territoriale = GTK_LIST_STORE (gtk_builder_get_object (priv->commons->gtkbuilder, "lstore_tipi_aggregazione_territoriale")); + + /* creo la gdaexgrid */ + priv->grid = gdaex_grid_new (); + gdaex_grid_set_solipa (priv->grid, priv->commons->solipa); + gdaex_grid_set_title (priv->grid, gtk_label_get_text (GTK_LABEL (gtk_builder_get_object (priv->commons->gtkbuilder, "label26")))); + + gcol = gdaex_grid_column_new ("ID", "id", G_TYPE_INT, TRUE, TRUE, TRUE, TRUE, -1); + gdaex_grid_add_column (priv->grid, gcol); + + gcol = gdaex_grid_column_new_defaults ("Nome", "nome", G_TYPE_STRING); + gdaex_grid_add_column (priv->grid, gcol); + + priv->wgrid = gdaex_grid_get_widget (priv->grid); + gtk_tree_view_set_search_column (GTK_TREE_VIEW (priv->wgrid), 1); + gtk_container_add (GTK_CONTAINER (gtk_builder_get_object (priv->commons->gtkbuilder, "scrolledwindow5")), priv->wgrid); + gtk_widget_show (priv->wgrid); + + priv->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->wgrid)); + priv->tstore_tipi_aggregazione_territoriale = GTK_TREE_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (priv->wgrid))); if (priv->selezione) { @@ -160,15 +179,13 @@ TerritorioTipiAggregazioneTerritoriale priv->wtransient = GTK_WINDOW (gtk_builder_get_object (priv->commons->gtkbuilder, "w_main")); } - g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button44"), - "clicked", G_CALLBACK (territorio_tipi_aggregazione_territoriale_on_btn_esporta_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button29"), "clicked", G_CALLBACK (territorio_tipi_aggregazione_territoriale_on_btn_nuovo_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button30"), "clicked", G_CALLBACK (territorio_tipi_aggregazione_territoriale_on_btn_modifica_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button31"), "clicked", G_CALLBACK (territorio_tipi_aggregazione_territoriale_on_btn_elimina_clicked), (gpointer)a); - g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "treeview5"), + g_signal_connect (priv->wgrid, "row-activated", G_CALLBACK (territorio_tipi_aggregazione_territoriale_on_trv_tipi_aggregazione_territoriale_row_activated), (gpointer)a); if (priv->selezione) @@ -214,35 +231,21 @@ GtkWidget static void territorio_tipi_aggregazione_territoriale_carica (TerritorioTipiAggregazioneTerritoriale *territorio_tipi_aggregazione_territoriale) { - GtkTreeIter iter; - GdaDataModel *dm; - - gint rows; - gint row; + gchar *sql; TerritorioTipiAggregazioneTerritorialePrivate *priv = TERRITORIO_TIPI_AGGREGAZIONE_TERRITORIALE_GET_PRIVATE (territorio_tipi_aggregazione_territoriale); - gtk_list_store_clear (priv->lstore_tipi_aggregazione_territoriale); + gtk_tree_store_clear (priv->tstore_tipi_aggregazione_territoriale); - dm = gdaex_query (priv->commons->gdaex, - "SELECT c.id, c.nome" + sql = g_strdup_printf ("SELECT c.id, c.nome" " FROM tipi_aggregazione_territoriale AS c" " WHERE c.status <> 'E'" " ORDER BY c.nome"); - if (dm != NULL) - { - rows = gda_data_model_get_n_rows (dm); - for (row = 0; row < rows; row++) - { - gtk_list_store_append (priv->lstore_tipi_aggregazione_territoriale, &iter); - gtk_list_store_set (priv->lstore_tipi_aggregazione_territoriale, &iter, - COL_ID, gdaex_data_model_get_field_value_stringify_at (dm, row, "id"), - COL_NOME, gdaex_data_model_get_field_value_stringify_at (dm, row, "nome"), - -1); - } - - g_object_unref (dm); - } + gdaex_grid_fill_from_sql (priv->grid, + priv->commons->gdaex, + sql, + NULL); + g_free (sql); } static void @@ -257,7 +260,7 @@ territorio_tipi_aggregazione_territoriale_modifica (TerritorioTipiAggregazioneTe { GtkWidget *w; - gtk_tree_model_get (GTK_TREE_MODEL (priv->lstore_tipi_aggregazione_territoriale), &iter, + gtk_tree_model_get (GTK_TREE_MODEL (priv->tstore_tipi_aggregazione_territoriale), &iter, COL_ID, &id, -1); @@ -290,7 +293,7 @@ territorio_tipi_aggregazione_territoriale_selezionato (TerritorioTipiAggregazion if (gtk_tree_selection_get_selected (priv->selection, NULL, &iter)) { - gtk_tree_model_get (GTK_TREE_MODEL (priv->lstore_tipi_aggregazione_territoriale), &iter, + gtk_tree_model_get (GTK_TREE_MODEL (priv->tstore_tipi_aggregazione_territoriale), &iter, COL_ID, &id, -1); @@ -343,48 +346,6 @@ territorio_tipi_aggregazione_territoriale_get_property (GObject *object, guint p } /* CALLBACK */ -static void -territorio_tipi_aggregazione_territoriale_on_btn_esporta_clicked (GtkButton *button, - gpointer user_data) -{ - GtkWidget *transient; - - guint ret; - - TerritorioTipiAggregazioneTerritoriale *territorio_tipi_aggregazione_territoriale = (TerritorioTipiAggregazioneTerritoriale *)user_data; - TerritorioTipiAggregazioneTerritorialePrivate *priv = TERRITORIO_TIPI_AGGREGAZIONE_TERRITORIALE_GET_PRIVATE (territorio_tipi_aggregazione_territoriale); - - gchar **columns_title = g_strsplit ("ID|Tipo aggregazione", "|", -1); - - if (priv->selezione) - { - transient = priv->widget; - } - else - { - transient = GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, "w_main")); - } - - ret = solipa_gtktreemodel_to_csv_gui (priv->commons->solipa, GTK_WINDOW (transient), GTK_TREE_MODEL (priv->lstore_tipi_aggregazione_territoriale), - columns_title, g_strv_length (columns_title)); - if (ret == 1) - { - solipa_message_dialog (transient, - GTK_MESSAGE_INFO, - GTK_BUTTONS_OK, - "Salvataggio eseguito con successo."); - } - else if (ret == 0) - { - solipa_message_dialog (transient, - GTK_MESSAGE_WARNING, - GTK_BUTTONS_OK, - "Errore durante il salvataggio."); - } - - g_strfreev (columns_title); -} - static void territorio_tipi_aggregazione_territoriale_on_btn_nuovo_clicked (GtkButton *button, gpointer user_data) @@ -452,7 +413,7 @@ territorio_tipi_aggregazione_territoriale_on_btn_elimina_clicked (GtkButton *but GTK_BUTTONS_YES_NO, "Sicuro di voler eliminare il tipo aggregazione territoriale selezionato?") == GTK_RESPONSE_YES) { - gtk_tree_model_get (GTK_TREE_MODEL (priv->lstore_tipi_aggregazione_territoriale), &iter, + gtk_tree_model_get (GTK_TREE_MODEL (priv->tstore_tipi_aggregazione_territoriale), &iter, COL_ID, &id, -1); -- 2.49.0