From a1b98d39f098feb7ac4c250ff3a7e5bad5ab9053 Mon Sep 17 00:00:00 2001
From: Andrea Zagli <azagli@libero.it>
Date: Thu, 8 Dec 2016 12:03:05 +0100
Subject: [PATCH] Messo il GtkFormDecoder in ufficio nodo (refs #646).

---
 data/organigramma/form/ufficio_nodo.form | 19 +++-----
 data/organigramma/gui/organigramma.gui   | 62 ++++--------------------
 src/ufficionodo.c                        | 13 +++--
 3 files changed, 22 insertions(+), 72 deletions(-)

diff --git a/data/organigramma/form/ufficio_nodo.form b/data/organigramma/form/ufficio_nodo.form
index b53e28e..4497554 100644
--- a/data/organigramma/form/ufficio_nodo.form
+++ b/data/organigramma/form/ufficio_nodo.form
@@ -15,21 +15,14 @@
 		</field>
 	</widget>
 
-	<widget type="entry" name="entry11">
-		<field type="text" name="nodo">
-			<to-load>f</to-load>
-			<to-save>f</to-save>
-		</field>
-	</widget>
-
-	<widget type="label" name="label37" label="label36">
-		<on-change what="update" when="after">
-			<connection-name></connection-name>
-			<widget-name>entry11</widget-name>
+	<widget type="decoder" name="gtkformdecoder14" label="label36">
+		<decoder>
 			<sql>
-				SELECT nome FROM nodi WHERE id = ##label37::gint
+				SELECT a.nome
+				FROM nodi AS a
+				WHERE a.id = ##key0::gint
 			</sql>
-		</on-change>
+		</decoder>
 		<field type="integer" name="id_nodi">
 		</field>
 	</widget>
diff --git a/data/organigramma/gui/organigramma.gui b/data/organigramma/gui/organigramma.gui
index 090c4db..410efe8 100644
--- a/data/organigramma/gui/organigramma.gui
+++ b/data/organigramma/gui/organigramma.gui
@@ -10115,58 +10115,6 @@
                 <property name="top_attach">1</property>
               </packing>
             </child>
-            <child>
-              <object class="GtkBox" id="hbox5">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="hexpand">True</property>
-                <property name="spacing">5</property>
-                <child>
-                  <object class="GtkEntry" id="entry11">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="hexpand">True</property>
-                    <property name="editable">False</property>
-                    <property name="invisible_char">●</property>
-                    <property name="primary_icon_activatable">False</property>
-                    <property name="secondary_icon_activatable">False</property>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="button44">
-                    <property name="label" translatable="yes">...</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label37">
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">lbl_id_nodi</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">0</property>
-              </packing>
-            </child>
             <child>
               <object class="GtkLabel" id="label22">
                 <property name="can_focus">False</property>
@@ -10199,6 +10147,16 @@
                 <property name="top_attach">2</property>
               </packing>
             </child>
+            <child>
+              <object class="GtkFormDecoder" id="gtkformdecoder14">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">0</property>
+              </packing>
+            </child>
           </object>
           <packing>
             <property name="expand">True</property>
diff --git a/src/ufficionodo.c b/src/ufficionodo.c
index fd0e5c3..3e71863 100644
--- a/src/ufficionodo.c
+++ b/src/ufficionodo.c
@@ -25,6 +25,7 @@
 
 #include <libzakautho/autoz.h>
 #include <libgtkform/form.h>
+#include <libgtkformui/gtkformdecoder.h>
 #include <libsolipa/utils.h>
 
 #include "ufficionodo.h"
@@ -36,7 +37,6 @@ static void organigramma_ufficio_nodo_init (OrganigrammaUfficioNodo *organigramm
 static void organigramma_ufficio_nodo_carica (OrganigrammaUfficioNodo *organigramma_ufficio_nodo);
 static void organigramma_ufficio_nodo_salva (OrganigrammaUfficioNodo *organigramma_ufficio_nodo, gboolean chiudi);
 
-
 static gboolean organigramma_ufficio_nodo_conferma_chiusura (OrganigrammaUfficioNodo *organigramma_ufficio_nodo);
 
 static void organigramma_ufficio_nodo_set_property (GObject *object,
@@ -67,8 +67,7 @@ static void organigramma_ufficio_nodo_on_btn_salvaechiudi_clicked (GtkButton *bu
 enum
 {
 	LBL_ID,
-	LBL_ID_UFFICI,
-	LBL_ID_NODI
+	LBL_ID_UFFICI
 };
 
 typedef struct _OrganigrammaUfficioNodoPrivate OrganigrammaUfficioNodoPrivate;
@@ -159,14 +158,13 @@ OrganigrammaUfficioNodo
 	priv->objects = gtk_form_get_objects_by_name (priv->form,
 	                                              "label38",
 	                                              "label22",
-	                                              "label37",
 	                                              NULL);
 
 	g_signal_connect (priv->w,
 	                  "delete-event", G_CALLBACK (organigramma_ufficio_nodo_on_w_organigramma_ufficio_nodo_delete_event), (gpointer)a);
 
-	g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button44")),
-	                  "clicked", G_CALLBACK (organigramma_ufficio_nodo_on_btn_nodo_clicked), (gpointer)a);
+	g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "gtkformdecoder14")),
+	                  "btn-browse-clicked", G_CALLBACK (organigramma_ufficio_nodo_on_btn_nodo_clicked), (gpointer)a);
 
 	g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button45")),
 	                  "clicked", G_CALLBACK (organigramma_ufficio_nodo_on_btn_annulla_clicked), (gpointer)a);
@@ -287,7 +285,8 @@ organigramma_ufficio_nodo_on_nodo_selezionato (gpointer instance, guint id, gpoi
 	OrganigrammaUfficioNodo *ia = (OrganigrammaUfficioNodo *)user_data;
 	OrganigrammaUfficioNodoPrivate *priv = ORGANIGRAMMA_UFFICIO_NODO_GET_PRIVATE (ia);
 
-	gtk_form_widget_set_value_stringify (gtk_form_get_form_widget_from_name (priv->form, "label37"), g_strdup_printf ("%d", id));
+	gtk_form_widget_set_value_stringify (gtk_form_get_form_widget_from_name (priv->form, "gtkformdecoder14"),
+	                                     g_strdup_printf ("%d", id));
 }
 
 static void
-- 
2.49.0