From 537b9aa80eac93693500d03f53c2d3c153810bf4 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 13 Nov 2016 16:11:48 +0100 Subject: [PATCH] Tolta la combobox tipo recapito in persana ufficio recapito (refs #645 #646). --- .../form/persona_ufficio_recapito.form | 13 ++++--- data/organigramma/gui/organigramma.gui | 27 +++++-------- src/personaufficiorecapito.c | 39 +++++++++++++++++++ 3 files changed, 57 insertions(+), 22 deletions(-) diff --git a/data/organigramma/form/persona_ufficio_recapito.form b/data/organigramma/form/persona_ufficio_recapito.form index 9e1da93..add3246 100644 --- a/data/organigramma/form/persona_ufficio_recapito.form +++ b/data/organigramma/form/persona_ufficio_recapito.form @@ -20,11 +20,14 @@ - - 0 - - SELECT id, nome FROM tipi_recapito WHERE status <> 'E' ORDER BY nome - + + + + SELECT a.nome + FROM tipi_recapito AS a + WHERE a.id = ##key0::gint + + t diff --git a/data/organigramma/gui/organigramma.gui b/data/organigramma/gui/organigramma.gui index dd907ae..034c04f 100644 --- a/data/organigramma/gui/organigramma.gui +++ b/data/organigramma/gui/organigramma.gui @@ -6239,23 +6239,6 @@ 1 - - - True - False - True - - - - 1 - - - - - 1 - 0 - - True @@ -6338,6 +6321,16 @@ 2 + + + True + False + + + 1 + 0 + + diff --git a/src/personaufficiorecapito.c b/src/personaufficiorecapito.c index 73d1041..63bbc11 100644 --- a/src/personaufficiorecapito.c +++ b/src/personaufficiorecapito.c @@ -25,9 +25,11 @@ #include #include +#include #include #include "personaufficiorecapito.h" +#include "tipirecapito.h" static void organigramma_persona_ufficio_recapito_class_init (OrganigrammaPersonaUfficioRecapitoClass *klass); static void organigramma_persona_ufficio_recapito_init (OrganigrammaPersonaUfficioRecapito *organigramma_persona_ufficio_recapito); @@ -37,6 +39,8 @@ static void organigramma_persona_ufficio_recapito_salva (OrganigrammaPersonaUffi static gboolean organigramma_persona_ufficio_recapito_conferma_chiusura (OrganigrammaPersonaUfficioRecapito *organigramma_persona_ufficio_recapito); +static void organigramma_persona_ufficio_recapito_on_tipo_recapito_selezionato (gpointer instance, guint id, gpointer user_data); + static void organigramma_persona_ufficio_recapito_set_property (GObject *object, guint property_id, const GValue *value, @@ -50,6 +54,9 @@ static gboolean organigramma_persona_ufficio_recapito_on_w_organigramma_persona_ GdkEvent *event, gpointer user_data); +static void organigramma_persona_ufficio_recapito_on_btn_tipo_recapito_clicked (GtkButton *button, + gpointer user_data); + static void organigramma_persona_ufficio_recapito_on_btn_annulla_clicked (GtkButton *button, gpointer user_data); static void organigramma_persona_ufficio_recapito_on_btn_salva_clicked (GtkButton *button, @@ -162,6 +169,9 @@ OrganigrammaPersonaUfficioRecapito g_signal_connect (priv->w, "delete-event", G_CALLBACK (organigramma_persona_ufficio_recapito_on_w_organigramma_persona_ufficio_recapito_delete_event), (gpointer)a); + g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "gtkformdecoder8"), + "btn-browse-clicked", G_CALLBACK (organigramma_persona_ufficio_recapito_on_btn_tipo_recapito_clicked), (gpointer)a); + g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button85")), "clicked", G_CALLBACK (organigramma_persona_ufficio_recapito_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button86")), @@ -328,6 +338,16 @@ organigramma_persona_ufficio_recapito_conferma_chiusura (OrganigrammaPersonaUffi } /* CALLBACK */ +static void +organigramma_persona_ufficio_recapito_on_tipo_recapito_selezionato (gpointer instance, guint id, gpointer user_data) +{ + OrganigrammaPersonaUfficioRecapito *f = (OrganigrammaPersonaUfficioRecapito *)user_data; + OrganigrammaPersonaUfficioRecapitoPrivate *priv = ORGANIGRAMMA_PERSONA_UFFICIO_RECAPITO_GET_PRIVATE (f); + + gtk_form_widget_set_value_stringify (gtk_form_get_form_widget_from_name (priv->form, "gtkformdecoder8"), + g_strdup_printf ("%d", id)); +} + static gboolean organigramma_persona_ufficio_recapito_on_w_organigramma_persona_ufficio_recapito_delete_event (GtkWidget *widget, GdkEvent *event, @@ -336,6 +356,25 @@ organigramma_persona_ufficio_recapito_on_w_organigramma_persona_ufficio_recapito return !organigramma_persona_ufficio_recapito_conferma_chiusura ((OrganigrammaPersonaUfficioRecapito *)user_data); } +static void +organigramma_persona_ufficio_recapito_on_btn_tipo_recapito_clicked (GtkButton *button, + gpointer user_data) +{ + GtkWidget *w; + + OrganigrammaPersonaUfficioRecapito *rf = (OrganigrammaPersonaUfficioRecapito *)user_data; + OrganigrammaPersonaUfficioRecapitoPrivate *priv = ORGANIGRAMMA_PERSONA_UFFICIO_RECAPITO_GET_PRIVATE (rf); + + OrganigrammaTipiRecapito *c = organigramma_tipi_recapito_new (priv->commons, TRUE); + + g_signal_connect (G_OBJECT (c), "selezionato", + G_CALLBACK (organigramma_persona_ufficio_recapito_on_tipo_recapito_selezionato), user_data); + + w = organigramma_tipi_recapito_get_widget (c); + gtk_window_set_transient_for (GTK_WINDOW (w), GTK_WINDOW (priv->w)); + gtk_widget_show (w); +} + static void organigramma_persona_ufficio_recapito_on_btn_annulla_clicked (GtkButton *button, gpointer user_data) -- 2.49.0