From: Andrea Zagli Date: Sat, 21 Dec 2019 09:02:25 +0000 (+0100) Subject: Migrato il form stato a zakform. X-Git-Url: https://saetta.ns0.it/gitweb?a=commitdiff_plain;h=ffa9f5b3f21bf4cef1487f5669da1c3c7521cc48;p=solipa%2Fterritorio Migrato il form stato a zakform. --- diff --git a/configure.ac b/configure.ac index a9fc350..e615f5f 100644 --- a/configure.ac +++ b/configure.ac @@ -43,6 +43,10 @@ PKG_CHECK_MODULES(TERRITORIO, [gio-2.0 >= 2.36 libzakconfi >= 0.10.0 libgtkform >= 0.5.0 libgtkformui >= 0.5.0 + libzakform + libzakformgtk + libzakformgdaex + libzakformgtkdecoder libzakauthe >= 0.2.0 libzakautho >= 0.0.5 libzakutils diff --git a/data/territorio/form/stato.form b/data/territorio/form/stato.form index f9940bd..265bddb 100644 --- a/data/territorio/form/stato.form +++ b/data/territorio/form/stato.form @@ -1,35 +1,42 @@ - - - stati
- - - - t - t - - - - - - t - - - - - - - - - - - - - - - - - - - -
+ + + id + integer + + TRUE + label3 + + + + nome + string + + entry1 + + + + nazionalita + string + + entry2 + + + sigla + string + + entry3 + + + cod_istat + string + + entry4 + + + comunita_europea + boolean + + checkbutton1 + + diff --git a/po/Makefile.in.in b/po/Makefile.in.in index 027f656..cb89a4a 100644 --- a/po/Makefile.in.in +++ b/po/Makefile.in.in @@ -56,7 +56,7 @@ COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) SOURCES = POFILES = @POFILES@ GMOFILES = @GMOFILES@ -DISTFILES = LINGUAS ChangeLog Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \ +DISTFILES = LINGUAS Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \ $(POFILES) $(GMOFILES) $(SOURCES) POTFILES = \ diff --git a/src/stato.c b/src/stato.c index 44ded1a..4dc3d5c 100644 --- a/src/stato.c +++ b/src/stato.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2018 Andrea Zagli + * Copyright (C) 2010-2019 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -17,7 +17,9 @@ * */ -#include +#include +#include +#include #include #include @@ -63,7 +65,8 @@ struct _TerritorioStatoPrivate { TerritorioCommons *commons; - GtkForm *form; + ZakFormGtkForm *form; + ZakFormGdaexProvider *form_provider; GtkWidget *w; @@ -135,13 +138,15 @@ TerritorioStato return NULL; } - priv->form = gtk_form_new (); - g_object_set (G_OBJECT (priv->form), "gdaex", priv->commons->gdaex, NULL); - gtk_form_load_from_file (priv->form, g_build_filename (priv->commons->formdir, "stato.form", NULL), priv->commons->gtkbuilder); + priv->form = zak_form_gtk_form_new (); + zak_form_gtk_form_set_gtkbuilder (priv->form, priv->commons->gtkbuilder); + zak_form_form_load_from_file (ZAK_FORM_FORM (priv->form), g_build_filename (priv->commons->formdir, "stato.form", NULL)); + + priv->form_provider = zak_form_gdaex_provider_new (priv->commons->gdaex, "stati"); priv->w = GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, "w_stato")); - priv->objects = gtk_form_get_objects_by_name (priv->form, + priv->objects = zak_form_gtk_form_get_gobjects_by_name (priv->form, "label3", NULL); @@ -155,13 +160,14 @@ TerritorioStato g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button71"), "clicked", G_CALLBACK (territorio_stato_on_btn_salva_chiudi_clicked), (gpointer)a); - priv->id = id; + zak_form_form_clear (ZAK_FORM_FORM (priv->form)); + priv->id = id; if (priv->id == 0) { gtk_label_set_text (GTK_LABEL (priv->objects[LBL_ID]), ""); - gtk_form_set_as_origin (priv->form); + zak_form_form_set_as_original (ZAK_FORM_FORM (priv->form)); } else { @@ -218,7 +224,7 @@ territorio_stato_carica (TerritorioStato *territorio_stato) { TerritorioStatoPrivate *priv = TERRITORIO_STATO_GET_PRIVATE (territorio_stato); - if (gtk_form_fill_from_table (priv->form)) + if (zak_form_form_load (ZAK_FORM_FORM (priv->form), ZAK_FORM_IPROVIDER (priv->form_provider))) { } } @@ -226,31 +232,42 @@ territorio_stato_carica (TerritorioStato *territorio_stato) static void territorio_stato_salva (TerritorioStato *territorio_stato, gboolean chiudi) { - gchar *sql; + gboolean success; TerritorioStatoClass *klass = TERRITORIO_STATO_GET_CLASS (territorio_stato); TerritorioStatoPrivate *priv = TERRITORIO_STATO_GET_PRIVATE (territorio_stato); - if (!gtk_form_check (priv->form, (priv->id != 0), NULL, TRUE, priv->w, TRUE)) + if (!zak_form_gtk_form_is_valid (priv->form, priv->w)) { return; } + success = FALSE; + if (priv->id == 0) { - sql = gtk_form_get_sql (priv->form, GTK_FORM_SQL_INSERT); + guint new_id; + + new_id = gdaex_get_new_id (priv->commons->gdaex, + "stati", + "id", + NULL); + + gtk_label_set_text (GTK_LABEL (priv->objects[LBL_ID]), g_strdup_printf ("%d", new_id)); + + success = zak_form_form_insert (ZAK_FORM_FORM (priv->form), ZAK_FORM_IPROVIDER (priv->form_provider)); } else { - sql = gtk_form_get_sql (priv->form, GTK_FORM_SQL_UPDATE); + success = zak_form_form_update (ZAK_FORM_FORM (priv->form), ZAK_FORM_IPROVIDER (priv->form_provider)); } - if (gdaex_execute (priv->commons->gdaex, sql) == 1) + if (success) { g_signal_emit (territorio_stato, klass->aggiornato_signal_id, 0); - gtk_form_set_as_origin (priv->form); + zak_form_form_set_as_original (ZAK_FORM_FORM (priv->form)); if (priv->id == 0) { @@ -319,7 +336,7 @@ territorio_stato_conferma_chiusura (TerritorioStato *territorio_stato) ret = TRUE; if (gtk_widget_get_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, "button7"))) - && gtk_form_is_changed (priv->form)) + && zak_form_form_is_changed (ZAK_FORM_FORM (priv->form))) { if (solipa_message_dialog (priv->w, GTK_MESSAGE_QUESTION,