From 7cc8e8d88e6be2f8c6b95e452a665f3b37d0b9cc Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 12 Dec 2016 11:35:02 +0100 Subject: [PATCH] Migrazione a libzakform di ufficio orario. --- data/organigramma/form/ufficio_orario.form | 208 ++++++++++++--------- src/ufficioorario.c | 51 +++-- 2 files changed, 149 insertions(+), 110 deletions(-) diff --git a/data/organigramma/form/ufficio_orario.form b/data/organigramma/form/ufficio_orario.form index 4291a8e..d30e32b 100644 --- a/data/organigramma/form/ufficio_orario.form +++ b/data/organigramma/form/ufficio_orario.form @@ -1,93 +1,117 @@ - - - ufficio_orari
- - - - t - t - - - - - - - - - - - t - - - - - - date - %d/%m/%Y - - - - - - date - %d/%m/%Y - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - time - %H.%M - - - - - - time - %H.%M - - - -
+ + + id + integer + TRUE + label52 + + + id_uffici + integer + label53 + + + descrizione + string + + textview7 + + + + da_data + date + + entry15 + %d/%m/%Y + %d/%m/%Y + + + a_data + date + + entry16 + %d/%m/%Y + %d/%m/%Y + + + lunedi + boolean + + checkbutton1 + + + martedi + boolean + + checkbutton2 + + + mercoledi + boolean + + checkbutton3 + + + giovedi + boolean + + checkbutton4 + + + venerdi + boolean + + checkbutton5 + + + sabato + boolean + + checkbutton6 + + + domenica + boolean + + checkbutton7 + + + settimana + integer + + spinbutton1 + + + giorno_mese + integer + + spinbutton2 + + + mese + integer + + combobox3 + 0 + + + da_ora + time + + entry18 + %H.%M + %H.%M + + + a_ora + time + + entry19 + %H.%M + %H.%M + + + + + diff --git a/src/ufficioorario.c b/src/ufficioorario.c index ecfd7a7..5b2f166 100644 --- a/src/ufficioorario.c +++ b/src/ufficioorario.c @@ -24,7 +24,9 @@ #include #include -#include +#include +#include +#include #include #include "ufficioorario.h" @@ -71,7 +73,8 @@ struct _OrganigrammaUfficioOrarioPrivate { OrganigrammaCommons *commons; - GtkForm *form; + ZakFormGtkForm *form; + ZakFormGdaexProvider *form_provider; GtkWidget *w; @@ -145,13 +148,15 @@ OrganigrammaUfficioOrario 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, "ufficio_orario.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, "ufficio_orario.form", NULL)); + + priv->form_provider = zak_form_gdaex_provider_new (priv->commons->gdaex, "ufficio_orari"); priv->w = GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, "w_ufficio_orario")); - priv->objects = gtk_form_get_objects_by_name (priv->form, + priv->objects = zak_form_gtk_form_get_gobjects_by_name (priv->form, "label52", "label53", NULL); @@ -166,13 +171,15 @@ OrganigrammaUfficioOrario g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button155")), "clicked", G_CALLBACK (organigramma_ufficio_orario_on_btn_salvaechiudi_clicked), (gpointer)a); + 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_label_set_text (GTK_LABEL (priv->objects[LBL_ID_UFFICI]), g_strdup_printf ("%d", id_uffici)); - gtk_form_set_as_origin (priv->form); + zak_form_form_set_as_original (ZAK_FORM_FORM (priv->form)); } else { @@ -208,12 +215,9 @@ GtkWidget static void organigramma_ufficio_orario_carica (OrganigrammaUfficioOrario *organigramma_ufficio_orario) { - gchar *sql; - GdaDataModel *dm; - OrganigrammaUfficioOrarioPrivate *priv = ORGANIGRAMMA_UFFICIO_ORARIO_GET_PRIVATE (organigramma_ufficio_orario); - if (gtk_form_fill_from_table (priv->form)) + if (zak_form_form_load (ZAK_FORM_FORM (priv->form), ZAK_FORM_IPROVIDER (priv->form_provider))) { } } @@ -221,27 +225,38 @@ organigramma_ufficio_orario_carica (OrganigrammaUfficioOrario *organigramma_uffi static void organigramma_ufficio_orario_salva (OrganigrammaUfficioOrario *organigramma_ufficio_orario, gboolean chiudi) { - gchar *sql; + gboolean success; OrganigrammaUfficioOrarioClass *klass = ORGANIGRAMMA_UFFICIO_ORARIO_GET_CLASS (organigramma_ufficio_orario); OrganigrammaUfficioOrarioPrivate *priv = ORGANIGRAMMA_UFFICIO_ORARIO_GET_PRIVATE (organigramma_ufficio_orario); - if (!gtk_form_check (priv->form, FALSE, 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, + "ufficio_orari", + "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_ufficio_orario, klass->aggiornato_signal_id, 0); @@ -250,7 +265,7 @@ organigramma_ufficio_orario_salva (OrganigrammaUfficioOrario *organigramma_uffic priv->id = strtol (gtk_label_get_text (GTK_LABEL (priv->objects[LBL_ID])), NULL, 10); } - gtk_form_set_as_origin (priv->form); + zak_form_form_set_as_original (ZAK_FORM_FORM (priv->form)); solipa_message_dialog (priv->w, GTK_MESSAGE_INFO, @@ -309,7 +324,7 @@ organigramma_ufficio_orario_conferma_chiusura (OrganigrammaUfficioOrario *organi 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