From: Andrea Zagli Date: Sun, 13 Nov 2016 11:56:58 +0000 (+0100) Subject: Tolta la combobox tipi nodo in nodo (refs #645 #646). X-Git-Url: https://saetta.ns0.it/gitweb?a=commitdiff_plain;h=c5bbb58d7c28221f84c3d2c434749aab199ae5fa;p=solipa%2Forganigramma Tolta la combobox tipi nodo in nodo (refs #645 #646). --- diff --git a/data/organigramma/form/nodo.form b/data/organigramma/form/nodo.form index 6cd191d..825623f 100644 --- a/data/organigramma/form/nodo.form +++ b/data/organigramma/form/nodo.form @@ -29,13 +29,15 @@ - - 0 - - SELECT id, nome FROM tipi_nodo WHERE status <> 'E' ORDER BY nome - + + + + SELECT a.nome + FROM tipi_nodo AS a + WHERE a.id = ##key0::gint + + - t diff --git a/data/organigramma/gui/organigramma.gui b/data/organigramma/gui/organigramma.gui index d315d89..e3045d5 100644 --- a/data/organigramma/gui/organigramma.gui +++ b/data/organigramma/gui/organigramma.gui @@ -4584,23 +4584,6 @@ 2 - - - True - False - True - - - - 1 - - - - - 1 - 2 - - True @@ -4749,6 +4732,16 @@ 0 + + + True + False + + + 1 + 2 + + True diff --git a/src/nodo.c b/src/nodo.c index 51fe8ff..0aa53ce 100644 --- a/src/nodo.c +++ b/src/nodo.c @@ -23,10 +23,12 @@ #include #include +#include #include #include "nodo.h" #include "nodi.h" +#include "tipinodo.h" static void organigramma_nodo_class_init (OrganigrammaNodoClass *klass); static void organigramma_nodo_init (OrganigrammaNodo *nodo); @@ -46,6 +48,7 @@ static void organigramma_nodo_get_property (GObject *object, GParamSpec *pspec); static void organigramma_nodo_on_organigramma_nodo_selezionato (gpointer instance, guint id, gpointer user_data); +static void organigramma_nodo_on_tipo_nodo_selezionato (gpointer instance, guint id, gpointer user_data); static void organigramma_nodo_on_organigramma_nodo_pulisci (GtkEntry *entry, GtkEntryIconPosition icon_pos, @@ -53,6 +56,8 @@ static void organigramma_nodo_on_organigramma_nodo_pulisci (GtkEntry *entry, gpointer user_data); static void organigramma_nodo_on_btn_organigramma_nodo_clicked (GtkButton *button, gpointer user_data); +static void organigramma_nodo_on_btn_tipo_nodo_clicked (GtkButton *button, + gpointer user_data); static gboolean organigramma_nodo_on_w_organigramma_nodo_delete_event (GtkWidget *widget, GdkEvent *event, @@ -141,7 +146,7 @@ OrganigrammaNodo error = NULL; gtk_builder_add_objects_from_file (priv->commons->gtkbuilder, priv->commons->guifile, - g_strsplit ("lstore_tipi_nodo|w_nodo", "|", -1), + g_strsplit ("w_nodo", "|", -1), &error); if (error != NULL) { @@ -168,6 +173,8 @@ OrganigrammaNodo "icon-press", G_CALLBACK (organigramma_nodo_on_organigramma_nodo_pulisci), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button6"), "clicked", G_CALLBACK (organigramma_nodo_on_btn_organigramma_nodo_clicked), (gpointer)a); + g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "gtkformdecoder6"), + "btn-browse-clicked", G_CALLBACK (organigramma_nodo_on_btn_tipo_nodo_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button4"), "clicked", G_CALLBACK (organigramma_nodo_on_btn_annulla_clicked), (gpointer)a); @@ -345,6 +352,16 @@ organigramma_nodo_on_organigramma_nodo_selezionato (gpointer instance, guint id, gtk_form_widget_set_value_stringify (gtk_form_get_form_widget_from_name (priv->form, "label5"), g_strdup_printf ("%d", id)); } +static void +organigramma_nodo_on_tipo_nodo_selezionato (gpointer instance, guint id, gpointer user_data) +{ + OrganigrammaNodo *f = (OrganigrammaNodo *)user_data; + OrganigrammaNodoPrivate *priv = ORGANIGRAMMA_NODO_GET_PRIVATE (f); + + gtk_form_widget_set_value_stringify (gtk_form_get_form_widget_from_name (priv->form, "gtkformdecoder6"), + g_strdup_printf ("%d", id)); +} + static void organigramma_nodo_on_organigramma_nodo_pulisci (GtkEntry *entry, GtkEntryIconPosition icon_pos, @@ -378,6 +395,26 @@ organigramma_nodo_on_btn_organigramma_nodo_clicked (GtkButton *button, gtk_widget_show (w); } +static void +organigramma_nodo_on_btn_tipo_nodo_clicked (GtkButton *button, + gpointer user_data) +{ + GtkWidget *w; + + OrganigrammaNodo *rf = (OrganigrammaNodo *)user_data; + + OrganigrammaNodoPrivate *priv = ORGANIGRAMMA_NODO_GET_PRIVATE (rf); + + OrganigrammaTipiNodo *c = organigramma_tipi_nodo_new (priv->commons, TRUE); + + g_signal_connect (G_OBJECT (c), "selezionato", + G_CALLBACK (organigramma_nodo_on_tipo_nodo_selezionato), user_data); + + w = organigramma_tipi_nodo_get_widget (c); + gtk_window_set_transient_for (GTK_WINDOW (w), GTK_WINDOW (priv->w)); + gtk_widget_show (w); +} + static gboolean organigramma_nodo_on_w_organigramma_nodo_delete_event (GtkWidget *widget, GdkEvent *event,