From 63ba12074f925881ba3a02b076f1bf98f285b92b Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 9 Dec 2016 12:01:33 +0100 Subject: [PATCH] Migrazione a libzakform di tipo nodo. --- data/organigramma/form/tipo_nodo.form | 54 ++++++++++++++------------- src/tiponodo.c | 45 ++++++++++++++-------- 2 files changed, 58 insertions(+), 41 deletions(-) diff --git a/data/organigramma/form/tipo_nodo.form b/data/organigramma/form/tipo_nodo.form index 01776b9..3e59763 100644 --- a/data/organigramma/form/tipo_nodo.form +++ b/data/organigramma/form/tipo_nodo.form @@ -1,27 +1,29 @@ - - - tipi_nodo
- - - - t - t - - - - - - t - - - - - - - - - - - -
+ + + id + integer + + TRUE + label12 + + + nome + string + + entry3 + + + + graphviz + string + + textview17 + + + graphviz_connessione + string + + textview18 + + diff --git a/src/tiponodo.c b/src/tiponodo.c index 18edaea..7d301e0 100644 --- a/src/tiponodo.c +++ b/src/tiponodo.c @@ -22,8 +22,9 @@ #endif #include -#include -#include +#include +#include +#include #include #include "tiponodo.h" @@ -68,7 +69,8 @@ struct _OrganigrammaTipoNodoPrivate { OrganigrammaCommons *commons; - GtkForm *form; + ZakFormGtkForm *form; + ZakFormGdaexProvider *form_provider; GtkWidget *w; @@ -140,13 +142,15 @@ OrganigrammaTipoNodo return NULL; } - priv->form = gtk_form_new_from_file (g_build_filename (priv->commons->formdir, "tipo_nodo.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, "tipo_nodo.form", NULL)); - g_object_set (priv->form, "gdaex", priv->commons->gdaex, NULL); + priv->form_provider = zak_form_gdaex_provider_new (priv->commons->gdaex, "tipi_nodo"); priv->w = GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, "w_tipo_nodo")); - priv->objects = gtk_form_get_objects_by_name (priv->form, + priv->objects = zak_form_gtk_form_get_gobjects_by_name (priv->form, "label12", NULL); @@ -166,7 +170,7 @@ OrganigrammaTipoNodo { 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 { @@ -203,7 +207,7 @@ organigramma_tipo_nodo_carica (OrganigrammaTipoNodo *organigramma_tipo_nodo) { OrganigrammaTipoNodoPrivate *priv = ORGANIGRAMMA_TIPO_NODO_GET_PRIVATE (organigramma_tipo_nodo); - if (gtk_form_fill_from_table (priv->form)) + if (zak_form_form_load (ZAK_FORM_FORM (priv->form), ZAK_FORM_IPROVIDER (priv->form_provider))) { } } @@ -211,31 +215,42 @@ organigramma_tipo_nodo_carica (OrganigrammaTipoNodo *organigramma_tipo_nodo) static void organigramma_tipo_nodo_salva (OrganigrammaTipoNodo *organigramma_tipo_nodo, gboolean chiudi) { - gchar *sql; + gboolean success; OrganigrammaTipoNodoClass *klass = ORGANIGRAMMA_TIPO_NODO_GET_CLASS (organigramma_tipo_nodo); OrganigrammaTipoNodoPrivate *priv = ORGANIGRAMMA_TIPO_NODO_GET_PRIVATE (organigramma_tipo_nodo); - 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, + "tipi_nodo", + "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 (organigramma_tipo_nodo, 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) { @@ -303,7 +318,7 @@ organigramma_tipo_nodo_conferma_chiusura (OrganigrammaTipoNodo *organigramma_tip OrganigrammaTipoNodoPrivate *priv = ORGANIGRAMMA_TIPO_NODO_GET_PRIVATE (organigramma_tipo_nodo); ret = TRUE; - if (gtk_form_is_changed (priv->form)) + if (zak_form_form_is_changed (ZAK_FORM_FORM (priv->form))) { if (solipa_message_dialog (priv->w, GTK_MESSAGE_QUESTION, -- 2.49.0