]> saetta.ns0.it Git - solipa/libsolipa/commitdiff
Spostate le utilità gtktreemodel in libzakautilsgtk.
authorAndrea Zagli <azagli@libero.it>
Fri, 3 Jan 2020 17:14:30 +0000 (18:14 +0100)
committerAndrea Zagli <azagli@libero.it>
Fri, 3 Jan 2020 17:14:30 +0000 (18:14 +0100)
configure.ac
data/libsolipa/gui/libsolipa.ui
src/utils.c
src/utils.h

index b7f8f6a3683071f5638735df8a0a6c200b764d1e..e34ebd1b2ea9b75a415a09c59bf2fca83c08f5b5 100644 (file)
@@ -46,6 +46,7 @@ PKG_CHECK_MODULES(SOLIPA, [libgdaex >= 0.5.0
                            gio-2.0 >= 2.36
                            gtk+-3.0 >= 3.0
                            libzakutils
+                           libzakutilsgtk
                            libzakformgtk])
 
 AC_SUBST(SOLIPA_CFLAGS)
index 59c1025a544115f1d77c965a4364916c332b3708..9899afc8ea3348d07920f820950577e382bfa214 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.20.0 -->
+<!-- Generated with glade 3.22.1 -->
 <interface>
   <requires lib="gtk+" version="3.12"/>
   <object class="GtkListStore" id="lstore_mail_attachments">
@@ -42,6 +42,9 @@
     <property name="default_height">400</property>
     <property name="destroy_with_parent">True</property>
     <property name="type_hint">normal</property>
+    <child>
+      <placeholder/>
+    </child>
     <child internal-child="vbox">
       <object class="GtkBox" id="dialog-vbox2">
         <property name="visible">True</property>
       <action-widget response="-5">button7</action-widget>
     </action-widgets>
   </object>
-  <object class="GtkListStore" id="lstore_treemodel_campi">
-    <columns>
-      <!-- column-name selezionato -->
-      <column type="gboolean"/>
-      <!-- column-name id -->
-      <column type="guint"/>
-      <!-- column-name nome -->
-      <column type="gchararray"/>
-    </columns>
-  </object>
-  <object class="GtkDialog" id="diag_gtktreemodel_to_csv">
-    <property name="can_focus">False</property>
-    <property name="border_width">5</property>
-    <property name="title" translatable="yes">Esporta CSV</property>
-    <property name="type_hint">normal</property>
-    <child internal-child="vbox">
-      <object class="GtkBox" id="dialog-vbox1">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">2</property>
-        <child internal-child="action_area">
-          <object class="GtkButtonBox" id="dialog-action_area1">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="layout_style">end</property>
-            <child>
-              <object class="GtkButton" id="button1">
-                <property name="label">gtk-cancel</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="button2">
-                <property name="label">gtk-save</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkPaned" id="paned1">
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="hexpand">True</property>
-            <property name="vexpand">True</property>
-            <property name="orientation">vertical</property>
-            <child>
-              <object class="GtkBox" id="box4">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="hexpand">True</property>
-                <property name="vexpand">True</property>
-                <property name="spacing">5</property>
-                <child>
-                  <object class="GtkFrame" id="frame1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label_xalign">0</property>
-                    <child>
-                      <object class="GtkAlignment" id="alignment1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="top_padding">5</property>
-                        <property name="bottom_padding">5</property>
-                        <property name="left_padding">5</property>
-                        <property name="right_padding">5</property>
-                        <child>
-                          <object class="GtkBox" id="vbox2">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="orientation">vertical</property>
-                            <property name="spacing">5</property>
-                            <child>
-                              <object class="GtkScrolledWindow" id="scrolledwindow1">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="shadow_type">etched-in</property>
-                                <child>
-                                  <object class="GtkTreeView" id="treeview1">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="model">lstore_treemodel_campi</property>
-                                    <property name="headers_clickable">False</property>
-                                    <property name="search_column">0</property>
-                                    <child internal-child="selection">
-                                      <object class="GtkTreeSelection" id="treeview-selection"/>
-                                    </child>
-                                    <child>
-                                      <object class="GtkTreeViewColumn" id="treeviewcolumn1">
-                                        <child>
-                                          <object class="GtkCellRendererToggle" id="cellrenderertoggle1"/>
-                                          <attributes>
-                                            <attribute name="active">0</attribute>
-                                          </attributes>
-                                        </child>
-                                      </object>
-                                    </child>
-                                    <child>
-                                      <object class="GtkTreeViewColumn" id="treeviewcolumn2">
-                                        <property name="title">Campo</property>
-                                        <child>
-                                          <object class="GtkCellRendererText" id="cellrenderertext1"/>
-                                          <attributes>
-                                            <attribute name="text">2</attribute>
-                                          </attributes>
-                                        </child>
-                                      </object>
-                                    </child>
-                                  </object>
-                                </child>
-                              </object>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkButtonBox" id="hbuttonbox1">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="spacing">5</property>
-                                <property name="layout_style">end</property>
-                                <child>
-                                  <object class="GtkButton" id="button3">
-                                    <property name="label" translatable="yes">Deseleziona tutti</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">False</property>
-                                    <property name="position">0</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkButton" id="button4">
-                                    <property name="label" translatable="yes">Seleziona tutti</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">False</property>
-                                    <property name="position">1</property>
-                                  </packing>
-                                </child>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">True</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
-                    </child>
-                    <child type="label">
-                      <object class="GtkLabel" id="label1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">&lt;b&gt;Seleziona i campi&lt;/b&gt;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkFrame" id="frame3">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label_xalign">0</property>
-                    <child>
-                      <object class="GtkAlignment" id="alignment3">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="left_padding">12</property>
-                        <child>
-                          <object class="GtkGrid" id="table1">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="row_spacing">5</property>
-                            <property name="column_spacing">5</property>
-                            <child>
-                              <object class="GtkLabel" id="label5">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Quotatura</property>
-                                <property name="xalign">0</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" id="entry1">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">●</property>
-                                <property name="text" translatable="yes">"</property>
-                                <property name="primary_icon_activatable">False</property>
-                                <property name="secondary_icon_activatable">False</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label6">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Quotare tutto</property>
-                                <property name="xalign">0</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkCheckButton" id="checkbutton1">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
-                                <property name="xalign">0</property>
-                                <property name="draw_indicator">True</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label7">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Separatore</property>
-                                <property name="xalign">0</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">2</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" id="entry2">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">●</property>
-                                <property name="text" translatable="yes">,</property>
-                                <property name="primary_icon_activatable">False</property>
-                                <property name="secondary_icon_activatable">False</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">2</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label8">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Nomi dei campi come prima riga</property>
-                                <property name="xalign">0</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">3</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkCheckButton" id="checkbutton3">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
-                                <property name="xalign">0</property>
-                                <property name="draw_indicator">True</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">3</property>
-                              </packing>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
-                    </child>
-                    <child type="label">
-                      <object class="GtkLabel" id="label3">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">&lt;b&gt;Opzioni di esportazione&lt;/b&gt;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="resize">False</property>
-                <property name="shrink">True</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkFrame" id="frame2">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="hexpand">True</property>
-                <property name="vexpand">True</property>
-                <property name="label_xalign">0</property>
-                <child>
-                  <object class="GtkAlignment" id="alignment2">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="top_padding">5</property>
-                    <property name="bottom_padding">5</property>
-                    <property name="left_padding">5</property>
-                    <property name="right_padding">5</property>
-                    <child>
-                      <object class="GtkFileChooserWidget" id="filechooserwidget1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="action">save</property>
-                        <property name="local_only">False</property>
-                        <property name="preview_widget_active">False</property>
-                        <property name="use_preview_label">False</property>
-                      </object>
-                    </child>
-                  </object>
-                </child>
-                <child type="label">
-                  <object class="GtkLabel" id="label2">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">&lt;b&gt;Seleziona il file&lt;/b&gt;</property>
-                    <property name="use_markup">True</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="resize">True</property>
-                <property name="shrink">True</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-    <action-widgets>
-      <action-widget response="-6">button1</action-widget>
-      <action-widget response="-5">button2</action-widget>
-    </action-widgets>
-  </object>
   <object class="GtkWindow" id="w_allegato">
     <property name="can_focus">False</property>
     <property name="title" translatable="yes">Allegato</property>
     <property name="window_position">center-on-parent</property>
     <property name="default_width">480</property>
     <property name="destroy_with_parent">True</property>
+    <child>
+      <placeholder/>
+    </child>
     <child>
       <object class="GtkGrid" id="table22">
         <property name="visible">True</property>
     <property name="default_width">550</property>
     <property name="destroy_with_parent">True</property>
     <property name="deletable">False</property>
+    <child>
+      <placeholder/>
+    </child>
     <child>
       <object class="GtkBox" id="box2">
         <property name="visible">True</property>
index b4ddc69c52ea7ce88c15448a631c36e678faac38..1cfec21f93428cfa4b6dd9e41975a7895123cc2f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2018 Andrea Zagli <azagli@libero.it>
+ * Copyright (C) 2010-2019 Andrea Zagli <azagli@libero.it>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
 #endif
 
 #include <libzakutils/libzakutils.h>
+#include <libzakutilsgtk/libzakutilsgtk.h>
 
 #include "solipa.h"
 #include "utils.h"
 
-static void solipa_fixed_toggled (GtkCellRendererToggle *cell,
-                                  gchar *path_str,
-                                  gpointer data);
-
-static void solipa_on_btn_select_all_clicked (GtkButton *button,
-                                    gpointer user_data);
-static void solipa_on_btn_unselect_all_clicked (GtkButton *button,
-                                    gpointer user_data);
-
 G_DEPRECATED_FOR (zak_utils_file_exists)
 gboolean
 solipa_file_exists (const gchar *filename)
@@ -58,85 +50,7 @@ solipa_file_exists (const gchar *filename)
        return zak_utils_file_exists (filename);
 }
 
-static gboolean
-solipa_gtktreeiter_export_to_csv (GtkTreeModel *model, GtkTreeIter iter,
-                                  GOutputStream *ostream,
-                                  gchar *quote, gboolean quote_all,
-                                  gchar *separator,
-                                  GType *gtypes,
-                                  guint *columns, guint n_columns)
-{
-       gboolean ret;
-
-       GError *error;
-
-       gchar *row;
-       const gchar *str;
-
-       guint i;
-
-       GValue *gval;
-       GValue *gvalstr;
-
-       ret = TRUE;
-
-       do
-               {
-                       row = g_strdup ("");
-                       for (i = 0; i < n_columns; i++)
-                               {
-                                       gval = g_new0 (GValue, 1);
-                                       gvalstr = g_value_init (g_new0 (GValue, 1), G_TYPE_STRING);
-
-                                       gtk_tree_model_get_value (model, &iter, columns[i], gval);
-                                       g_value_transform (gval, gvalstr);
-
-                                       str = g_value_get_string (gvalstr);
-                                       row = g_strconcat (row,
-                                                  (i > 0 ? separator : ""),
-                                                  (quote_all || gtypes[i] == G_TYPE_STRING ? quote : ""),
-                                                  (str == NULL ? "" : str),
-                                                  (quote_all || gtypes[i] == G_TYPE_STRING ? quote : ""),
-                                                  NULL);
-
-                                       g_value_unset (gval);
-                                       g_value_unset (gvalstr);
-                               }
-                       row = g_strconcat (row, "\n", NULL);
-
-                       error = NULL;
-                       if (!g_output_stream_write_all (ostream,
-                                                       row, strlen (row), NULL, NULL, &error))
-                               {
-                                       g_warning ("Errore nella scrittura del file di output: %s",
-                                                  error != NULL && error->message != NULL ? error->message : "nessun dettaglio");
-                                       return FALSE;
-                               }
-
-                       g_free (row);
-
-                       if (gtk_tree_model_iter_has_child (model, &iter))
-                               {
-                                       GtkTreeIter child;
-
-                                       gtk_tree_model_iter_children (model, &child, &iter);
-
-                                       if (!solipa_gtktreeiter_export_to_csv (model, child,
-                                                                         ostream,
-                                                                         quote, quote_all,
-                                                                         separator,
-                                                                         gtypes,
-                                                                         columns, n_columns))
-                                               {
-                                                       return FALSE;
-                                               }
-                               }
-               }
-       while (gtk_tree_model_iter_next (model, &iter));
-
-       return ret;
-}
-
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_to_csv)
 gboolean
 solipa_gtktreemodel_to_csv (GtkTreeModel *model, const gchar *filename,
                             gboolean overwrite,
@@ -147,194 +61,17 @@ solipa_gtktreemodel_to_csv (GtkTreeModel *model, const gchar *filename,
                             guint *columns,
                             guint n_columns)
 {
-       gchar *_filename;
-       gchar *_quote;
-       gchar *_separator;
-
-       GFile *fout;
-       GFileOutputStream *ostream;
-       GError *error;
-
-       gchar *row;
-
-       guint i;
-
-       GtkTreeIter iter;
-       GType *gtypes;
-
-       gboolean ret;
-
-       g_return_val_if_fail (GTK_IS_TREE_MODEL (model), FALSE);
-       g_return_val_if_fail (filename != NULL, FALSE);
-       g_return_val_if_fail (columns_title != NULL, FALSE);
-       g_return_val_if_fail (columns != NULL, FALSE);
-       g_return_val_if_fail (n_columns > 0, FALSE);
-
-       _filename = g_strdup (filename);
-       g_return_val_if_fail (g_strcmp0 (g_strstrip (_filename), "") != 0, FALSE);
-
-       ret = TRUE;
-
-       if (quote != NULL)
-               {
-                       _quote = g_strdup (quote);
-               }
-       else
-               {
-                       _quote = g_strdup ("\"");
-               }
-       if (separator != NULL)
-               {
-                       _separator = g_strdup (separator);
-               }
-       else
-               {
-                       _separator = g_strdup (",");
-               }
-
-       if (gtk_tree_model_get_iter_first (model, &iter))
-               {
-                       /* creo/sostituisco il file */
-                       fout = g_file_new_for_path (filename);
-
-                       error = NULL;
-                       if (overwrite)
-                               {
-                                       ostream = g_file_replace (fout, NULL, FALSE,
-                                                                 G_FILE_CREATE_NONE,
-                                                                 NULL, &error);
-                               }
-                       else
-                               {
-                                       ostream = g_file_create (fout,
-                                                                G_FILE_CREATE_NONE,
-                                                                NULL, &error);
-                               }
-                       if (ostream == NULL)
-                               {
-                                       g_free (_filename);
-                                       g_free (_quote);
-                                       g_free (_separator);
-                                       g_warning ("Errore nella creazione del file di output: %s",
-                                                  error != NULL && error->message != NULL ? error->message : "nessun dettaglio");
-                                       return FALSE;
-                               }
-
-                       if (fields_name_first_row)
-                               {
-                                       /* nomi dei campi come prima riga */
-                                       row = g_strdup ("");
-                                       for (i = 0; i < n_columns; i++)
-                                               {
-                                                       row = g_strconcat (row,
-                                                                          (i > 0 ? _separator : ""),
-                                                                          _quote, columns_title[columns[i]], _quote,
-                                                                          NULL);
-                                               }
-                                       row = g_strconcat (row, "\n", NULL);
-
-                                       error = NULL;
-                                       if (!g_output_stream_write_all (G_OUTPUT_STREAM (ostream),
-                                                                       row, strlen (row), NULL, NULL, &error))
-                                               {
-                                                       g_free (_filename);
-                                                       g_free (_quote);
-                                                       g_free (_separator);
-                                                       g_warning ("Errore nella scrittura del file di output: %s",
-                                                                  error != NULL && error->message != NULL ? error->message : "nessun dettaglio");
-                                                       return FALSE;
-                                               }
-
-                                       g_free (row);
-                               }
-
-                       /* cache dei GType delle colonne */
-                       gtypes = g_malloc0 (n_columns * sizeof (GType));
-                       for (i = 0; i < n_columns; i++)
-                               {
-                                       gtypes[i] = gtk_tree_model_get_column_type (model, columns[i]);
-                               }
-
-                       solipa_gtktreeiter_export_to_csv (model, iter,
-                                                         G_OUTPUT_STREAM (ostream),
-                                                         _quote, quote_all,
-                                                         _separator,
-                                                         gtypes,
-                                                         columns, n_columns);
-
-                       error = NULL;
-                       if (!g_output_stream_close (G_OUTPUT_STREAM (ostream), NULL, &error))
-                               {
-                                       g_warning ("Errore nella chiusura del file di output: %s",
-                                                  error != NULL && error->message != NULL ? error->message : "nessun dettaglio");
-                                       ret = FALSE;
-                               }
-                       g_object_unref (ostream);
-               }
-       else
-               {
-                       g_warning ("Nessun record da esportare.");
-               }
-
-       g_free (_filename);
-       g_free (_quote);
-       g_free (_separator);
-
-       return ret;
-}
-
-static void
-solipa_fixed_toggled (GtkCellRendererToggle *cell,
-                      gchar *path_str,
-                      gpointer data)
-{
-       GtkTreeModel *model = (GtkTreeModel *)data;
-       GtkTreeIter  iter;
-       GtkTreePath *path = gtk_tree_path_new_from_string (path_str);
-
-       gboolean choosen;
-
-       /* get toggled iter */
-       gtk_tree_model_get_iter (model, &iter, path);
-       gtk_tree_model_get (model, &iter, 0, &choosen, -1);
-
-       choosen ^= 1;
-
-       /* set new value */
-       gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, choosen, -1);
-
-       /* clean up */
-       gtk_tree_path_free (path);
+       return zak_utils_gtk_treemodel_to_csv (model, filename, overwrite, quote, quote_all, separator, fields_name_first_row, columns_title, columns, n_columns);
 }
 
+G_DEPRECATED_FOR (zak_utils_gtk_liststore_select_unselect_all)
 void
 solipa_gtkliststore_select_unselect_all (GtkListStore *store, guint column, gboolean select)
 {
-       GtkTreeIter iter;
-
-       if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter))
-               {
-                       do
-                               {
-                                       gtk_list_store_set (store, &iter, column, select, -1);
-                               } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter));
-               }
-}
-
-static void
-solipa_on_btn_select_all_clicked (GtkButton *button,
-                                    gpointer user_data)
-{
-       solipa_gtkliststore_select_unselect_all ((GtkListStore *)user_data, 0, TRUE);
-}
-
-static void
-solipa_on_btn_unselect_all_clicked (GtkButton *button,
-                                    gpointer user_data)
-{
-       solipa_gtkliststore_select_unselect_all ((GtkListStore *)user_data, 0, FALSE);
+       zak_utils_gtk_liststore_select_unselect_all (store, column, select);
 }
 
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_to_csv_gui)
 guint
 solipa_gtktreemodel_to_csv_gui (Solipa *solipa,
                                 GtkWindow *parent,
@@ -342,384 +79,21 @@ solipa_gtktreemodel_to_csv_gui (Solipa *solipa,
                                 gchar **columns_title,
                                 guint n_columns)
 {
-       GtkWidget *diag;
-       GError *error;
-       GtkBuilder *builder;
-
-       GtkListStore *store;
-       GtkTreeIter iter;
-
-       gchar *filename;
-
-       guint col;
-       gboolean sel;
-       gchar *col_title;
-
-       guint *columns;
-       guint _n_columns;
-
-       guint ret;
-
-       g_return_val_if_fail (IS_SOLIPA (solipa), 0);
-
-       builder = solipa_get_gtkbuilder (solipa);
-
-       if (!GTK_IS_BUILDER (builder))
-               {
-                       g_warning ("GtkBuilder non inizializzato.");
-                       return 0;
-               }
-
-       ret = 1;
-
-       error = NULL;
-       gtk_builder_add_objects_from_file (builder,
-                                          solipa_get_guifile (solipa),
-                                          g_strsplit ("diag_gtktreemodel_to_csv"
-                                                      "|lstore_treemodel_campi",
-                                                      "|", -1),
-                                          &error);
-       if (error != NULL)
-               {
-                       g_warning ("Errore nell'inzializzazione della gui: %s.",
-                                  error->message != NULL ? error->message : "no details");
-                       return 0;
-               }
-
-       diag = GTK_WIDGET (gtk_builder_get_object (builder, "diag_gtktreemodel_to_csv"));
-       if (GTK_IS_WIDGET (diag))
-               {
-                       /* imposto la directory di default alla directory documenti */
-                       gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (gtk_builder_get_object (builder, "filechooserwidget1")),
-                                                            g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS));
-
-                       /* carico i nomi campi per la selezione nel model */
-                       store = GTK_LIST_STORE (gtk_builder_get_object (builder, "lstore_treemodel_campi"));
-                       if (!GTK_IS_LIST_STORE (store))
-                               {
-                                       g_warning ("Errore nell'ottenimento del list store.");
-                                       return 0;
-                               }
-
-                       g_signal_connect (gtk_builder_get_object (builder, "cellrenderertoggle1"),
-                                          "toggled", G_CALLBACK (solipa_fixed_toggled), (gpointer)store);
-
-                       g_signal_connect (gtk_builder_get_object (builder, "button3"),
-                                         "clicked", G_CALLBACK (solipa_on_btn_unselect_all_clicked), (gpointer)store);
-                       g_signal_connect (gtk_builder_get_object (builder, "button4"),
-                                         "clicked", G_CALLBACK (solipa_on_btn_select_all_clicked), (gpointer)store);
-
-                       gtk_list_store_clear (store);
-
-                       for (col = 0; col < n_columns; col++)
-                               {
-                                       if (g_strcmp0 (columns_title[col], "{SKIP}") != 0)
-                                               {
-                                                       gtk_list_store_append (store, &iter);
-                                                       gtk_list_store_set (store, &iter,
-                                                                           0, FALSE,
-                                                                           1, col,
-                                                                           2, columns_title[col],
-                                                                           -1);
-                                               }
-                               }
-
-                       gtk_tree_view_set_model (GTK_TREE_VIEW (gtk_builder_get_object (builder, "treeview1")),
-                                                GTK_TREE_MODEL (store));
-
-                       gtk_window_set_transient_for (GTK_WINDOW (diag), parent);
-                       do
-                               {
-                                       if (gtk_dialog_run (GTK_DIALOG (diag)) == GTK_RESPONSE_OK)
-                                               {
-                                                       filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (gtk_builder_get_object (builder, "filechooserwidget1")));
-                                                       if (filename == NULL
-                                                           || g_strcmp0 (g_strstrip (filename), "") == 0)
-                                                               {
-                                                                       GtkWidget *diag_req;
-
-                                                                       diag_req = gtk_message_dialog_new (GTK_WINDOW (diag),
-                                                                                                          GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
-                                                                                                          GTK_MESSAGE_WARNING,
-                                                                                                          GTK_BUTTONS_OK,
-                                                                                                          "Immettere il nome del file nel quale esportare i dati.");
-                                                                       gtk_dialog_run (GTK_DIALOG (diag_req));
-                                                                       gtk_widget_destroy (diag_req);
-                                                                       continue;
-                                                               }
-
-                                                       if (zak_utils_file_exists (filename))
-                                                               {
-                                                                       GtkWidget *diag_req;
-
-                                                                       diag_req = gtk_message_dialog_new (GTK_WINDOW (diag),
-                                                                                                          GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
-                                                                                                          GTK_MESSAGE_QUESTION,
-                                                                                                          GTK_BUTTONS_YES_NO,
-                                                                                                          "File esistente. Sovrascriverlo?");
-                                                                       if (gtk_dialog_run (GTK_DIALOG (diag_req)) == GTK_RESPONSE_YES)
-                                                                               {
-                                                                                       gtk_widget_destroy (diag_req);
-                                                                                       break;
-                                                                               }
-                                                                       gtk_widget_destroy (diag_req);
-                                                               }
-                                                       break;
-                                               }
-                                       else
-                                               {
-                                                       gtk_widget_destroy (diag);
-                                                       return -1;
-                                               }
-                               } while (TRUE);
-
-                       /* ricavo i campi selezionati che devono essere esportati */
-                       _n_columns = 0;
-                       if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter))
-                               {
-                                       columns = g_malloc0 (sizeof (guint));
-                                       do
-                                               {
-                                                       gtk_tree_model_get (GTK_TREE_MODEL (store), &iter,
-                                                                           0, &sel,
-                                                                           1, &col,
-                                                                           -1);
-                                                       if (sel)
-                                                               {
-                                                                       _n_columns++;
-
-                                                                       columns = g_realloc_n (columns, _n_columns, sizeof (guint));
-                                                                       columns[_n_columns - 1] = col;
-                                                               }
-                                               } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter));
-                               }
-
-                       /* export */
-                       if (!solipa_gtktreemodel_to_csv (model,
-                                                   filename,
-                                                   TRUE,
-                                                   gtk_entry_get_text (GTK_ENTRY (gtk_builder_get_object (builder, "entry1"))),
-                                                   gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "checkbutton1"))),
-                                                   gtk_entry_get_text (GTK_ENTRY (gtk_builder_get_object (builder, "entry2"))),
-                                                   gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "checkbutton3"))),
-                                                   columns_title,
-                                                   columns,
-                                                   _n_columns))
-                               {
-                                       ret = 0;
-                               }
-
-                       g_free (columns);
-
-                       gtk_widget_destroy (diag);
-               }
-
-       return ret;
+       return zak_utils_gtk_treemodel_to_csv_gui (parent, model, columns_title, n_columns);
 }
 
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_get_gtypes)
 GType
 *solipa_gtktreemodel_get_gtypes (GtkTreeModel *model, guint *cols)
 {
-       GType *ret;
-
-       guint _cols;
-       guint _col;
-
-       ret = NULL;
-
-       _cols = gtk_tree_model_get_n_columns (model);
-       if (_cols > 0)
-               {
-                       if (cols != NULL)
-                               {
-                                       *cols = _cols;
-                               }
-
-                       ret = (GType *)g_malloc0 (_cols * sizeof (GType));
-                       for (_col = 0; _col < _cols; _col++)
-                               {
-                                       ret[_col] = gtk_tree_model_get_column_type (model, _col);
-                               }
-               }
-
-       return ret;
-}
-
-static GtkTreeIter
-*solipa_gtktreemodel_get_iter_child (GtkTreeIter *iter, GPtrArray *models)
-{
-       GtkTreeModel *model;
-       GtkTreeIter *iter_parent;
-       GtkTreeIter *iter_child;
-
-       guint n;
-
-       iter_parent = iter;
-       iter_child = (GtkTreeIter *)g_malloc0 (sizeof (GtkTreeIter));
-
-       for (n = 0; n < (models->len - 1); n++)
-               {
-                       model = (GtkTreeModel *)g_ptr_array_index (models, n);
-                       if (GTK_IS_TREE_MODEL_SORT (model))
-                               {
-                                       gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (model),
-                                                                                       iter_child, iter_parent);
-                                       iter_parent = iter_child;
-                                       iter_child = (GtkTreeIter *)g_malloc0 (sizeof (GtkTreeIter));
-                               }
-                       else if (GTK_IS_TREE_MODEL_FILTER (model))
-                               {
-                                       gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model),
-                                                                                         iter_child, iter_parent);
-                                       iter_parent = iter_child;
-                                       iter_child = (GtkTreeIter *)g_malloc0 (sizeof (GtkTreeIter));
-                               }
-               }
-       g_free (iter_child);
-
-       return iter_parent;
-}
-
-static void
-solipa_gtktreemodel_copy_iter (GtkTreeModel *ret,
-                               GtkTreeModel *model,
-                               GPtrArray *models,
-                               gboolean is_list_store,
-                               guint cols,
-                               GtkTreeIter *iter,
-                               GtkTreeIter *iter_parent)
-{
-       GtkTreeIter iter_new;
-       GtkTreeIter *iter_child;
-
-       guint col;
-
-       do
-               {
-                       if (is_list_store)
-                               {
-                                       gtk_list_store_append (GTK_LIST_STORE (ret), &iter_new);
-                               }
-                       else
-                               {
-                                       gtk_tree_store_append (GTK_TREE_STORE (ret), &iter_new, iter_parent);
-                               }
-
-                       iter_child = solipa_gtktreemodel_get_iter_child (iter, models);
-                       for (col = 0; col < cols; col++)
-                               {
-                                       GValue gval = {0};
-
-                                       gtk_tree_model_get_value ((GtkTreeModel *)g_ptr_array_index (models, models->len - 1),
-                                                                 iter_child,
-                                                                 col, &gval);
-
-                                       if (is_list_store)
-                                               {
-                                                       gtk_list_store_set_value (GTK_LIST_STORE (ret), &iter_new, col, &gval);
-                                               }
-                                       else
-                                               {
-                                                       gtk_tree_store_set_value (GTK_TREE_STORE (ret), &iter_new, col, &gval);
-                                               }
-
-                                       g_value_unset (&gval);
-                               }
-
-                       if (!is_list_store)
-                               {
-                                       /* is_tree_store */
-                                       GtkTreeIter iter_children;
-
-                                       if (gtk_tree_model_iter_children (model, &iter_children, iter_child))
-                                               {
-                                                       solipa_gtktreemodel_copy_iter (ret, model, models, is_list_store, cols, &iter_children, &iter_new);
-                                               }
-                               }
-               } while (gtk_tree_model_iter_next (model, iter));
-}
-
-static void
-solipa_gtktreemodel_get_models_chain (GtkTreeModel *model, GPtrArray *models)
-{
-       GtkTreeModel *my_model;
-
-       if (GTK_IS_TREE_MODEL_SORT (model))
-               {
-                       my_model = (gpointer)gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (model));
-                       g_ptr_array_add (models, my_model);
-
-                       solipa_gtktreemodel_get_models_chain (my_model, models);
-               }
-       else if (GTK_IS_TREE_MODEL_FILTER (model))
-               {
-                       my_model = (gpointer)gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model));
-                       g_ptr_array_add (models, my_model);
-
-                       solipa_gtktreemodel_get_models_chain (my_model, models);
-               }
+       return zak_utils_gtk_treemodel_get_gtypes (model, cols);
 }
 
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_copy)
 GtkTreeModel
 *solipa_gtktreemodel_copy (GtkTreeModel *model, gboolean only_schema)
 {
-       GtkTreeModel *ret;
-
-       GType *gtypes;
-
-       guint cols;
-
-       GPtrArray *models; /* GtkTreeModel */
-
-       GtkTreeIter iter;
-
-       ret = NULL;
-
-       gtypes = solipa_gtktreemodel_get_gtypes (model, &cols);
-       if (gtypes != NULL && cols > 0)
-               {
-                       models = g_ptr_array_new ();
-                       g_ptr_array_add (models, (gpointer)model);
-
-                       if (GTK_IS_TREE_MODEL_SORT (model) ||
-                           GTK_IS_TREE_MODEL_FILTER (model))
-                               {
-                                       solipa_gtktreemodel_get_models_chain (model, models);
-                               }
-
-                       if (GTK_IS_LIST_STORE ((GtkTreeModel *)g_ptr_array_index (models, models->len - 1)))
-                               {
-                                       ret = GTK_TREE_MODEL (gtk_list_store_newv (cols, gtypes));
-
-                                       if (!only_schema)
-                                               {
-                                                       if (gtk_tree_model_get_iter_first (model, &iter))
-                                                               {
-                                                                       solipa_gtktreemodel_copy_iter (ret, model, models, TRUE, cols, &iter, NULL);
-                                                               }
-                                               }
-                               }
-                       else if (GTK_IS_TREE_STORE ((GtkTreeModel *)g_ptr_array_index (models, models->len - 1)))
-                               {
-                                       ret = GTK_TREE_MODEL (gtk_tree_store_newv (cols, gtypes));
-
-                                       if (!only_schema)
-                                               {
-                                                       if (gtk_tree_model_get_iter_first (model, &iter))
-                                                               {
-                                                                       solipa_gtktreemodel_copy_iter (ret, model, models, FALSE, cols, &iter, NULL);
-                                                               }
-                                               }
-                               }
-                       else
-                               {
-                                       g_warning ("GtkTreeModel type not expected.");
-                               }
-
-                       g_ptr_array_free (models, TRUE);
-               }
-
-       return ret;
+       return zak_utils_gtk_treemodel_copy (model, only_schema);
 }
 
 gchar
@@ -861,156 +235,53 @@ solipa_round (gdouble value, guint n_decimals)
        return zak_utils_round (value, n_decimals);
 }
 
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_get_value_string)
 const gchar
 *solipa_gtk_tree_model_get_value_string (GtkTreeModel *model, GtkTreeIter *iter, gint column)
 {
-       const gchar *ret;
-       GValue *gval;
-
-       ret = NULL;
-
-       gval = g_new0 (GValue, 1);
-       gtk_tree_model_get_value (model, iter, column, gval);
-
-       ret = g_strdup (g_value_get_string (gval));
-       g_value_unset (gval);
-
-       return ret;
+       return zak_utils_gtk_treemodel_get_value_string (model, iter, column);
 }
 
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_get_value_integer)
 gint
 solipa_gtk_tree_model_get_value_integer (GtkTreeModel *model, GtkTreeIter *iter, gint column)
 {
-       gint ret;
-       GValue *gval;
-
-       ret = 0;
-
-       gval = g_new0 (GValue, 1);
-       gtk_tree_model_get_value (model, iter, column, gval);
-
-       if (G_VALUE_HOLDS_STRING (gval))
-               {
-                       /* try conversion */
-                       ret = (gint)trunc ((gfloat)zak_utils_unformat_money (g_value_get_string (gval)));
-               }
-       else if (G_VALUE_HOLDS_INT (gval))
-               {
-                       ret = g_value_get_int (gval);
-               }
-       else if (G_VALUE_HOLDS_UINT (gval))
-               {
-                       ret = (gint)g_value_get_uint (gval);
-               }
-       g_value_unset (gval);
-
-       return ret;
+       return zak_utils_gtk_treemodel_get_value_integer (model, iter, column);
 }
 
+G_DEPRECATED_FOR (zak_utils_treemodel_get_value_double)
 gdouble
 solipa_gtk_tree_model_get_value_double (GtkTreeModel *model, GtkTreeIter *iter, gint column)
 {
-       gdouble ret;
-       GValue *gval;
-
-       ret = 0.0;
-
-       gval = g_new0 (GValue, 1);
-       gtk_tree_model_get_value (model, iter, column, gval);
-
-       if (G_VALUE_HOLDS_STRING (gval))
-               {
-                       /* try conversion */
-                       ret = zak_utils_unformat_money (g_value_get_string (gval));
-               }
-       else
-               {
-                       ret = g_value_get_double (gval);
-               }
-       g_value_unset (gval);
-
-       return ret;
+       return zak_utils_gtk_treemodel_get_value_double (model, iter, column);
 }
 
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_get_value_double_sql)
 const gchar
 *solipa_gtk_tree_model_get_value_double_sql (GtkTreeModel *model, GtkTreeIter *iter, gint column)
 {
-       char *cur;
-
-       const gchar *ret;
-       gdouble res;
-
-       res = solipa_gtk_tree_model_get_value_double (model, iter, column);
-
-       cur = g_strdup (setlocale (LC_NUMERIC, NULL));
-       setlocale (LC_NUMERIC, "C");
-       gda_locale_changed ();
-
-       ret = g_strdup_printf ("%f", res);
-
-       setlocale (LC_NUMERIC, cur);
-       gda_locale_changed ();
-       g_free (cur);
-
-       return ret;
+       return zak_utils_gtk_treemodel_get_value_double_sql (model, iter, column);
 }
 
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_get_value_boolean)
 gboolean
 solipa_gtk_tree_model_get_value_boolean (GtkTreeModel *model, GtkTreeIter *iter, gint column)
 {
-       gboolean ret;
-       GValue *gval;
-
-       ret = FALSE;
-
-       gval = g_new0 (GValue, 1);
-       gtk_tree_model_get_value (model, iter, column, gval);
-
-       if (G_VALUE_HOLDS_BOOLEAN (gval))
-               {
-                       ret = g_value_get_boolean (gval);
-               }
-       else if (G_VALUE_HOLDS_INT (gval))
-               {
-                       ret = (g_value_get_int (gval) == 0 ? FALSE : TRUE);
-               }
-       else if (G_VALUE_HOLDS_UINT (gval))
-               {
-                       ret = ((gint)g_value_get_uint (gval) == 0 ? FALSE : TRUE);
-               }
-       else if (G_VALUE_HOLDS_STRING (gval))
-               {
-                       ret = zak_utils_string_to_boolean (g_value_get_string (gval));
-               }
-       g_value_unset (gval);
-
-       return ret;
+       return zak_utils_gtk_treemodel_get_value_boolean (model, iter, column);
 }
 
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_get_value_tm)
 struct tm
 *solipa_gtk_tree_model_get_value_tm (GtkTreeModel *model, GtkTreeIter *iter, gint column, const gchar *format)
 {
-       struct tm *ret;
-       GDateTime *dt;
-
-       dt = solipa_gtk_tree_model_get_value_gdatetime (model, iter, column, format);
-
-       ret = zak_utils_gdatetime_to_tm (dt);
-
-       return ret;
+       return zak_utils_gtk_treemodel_get_value_tm (model, iter, column, format);
 }
 
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_get_value_gdatetime)
 GDateTime
 *solipa_gtk_tree_model_get_value_gdatetime (GtkTreeModel *model, GtkTreeIter *iter, gint column, const gchar *format)
 {
-       GDateTime *ret;
-       const gchar *value;
-
-       value = solipa_gtk_tree_model_get_value_string (model, iter, column);
-
-       ret = zak_utils_get_gdatetime_from_string (value, format);
-
-       return ret;
+       return zak_utils_gtk_treemodel_get_value_gdatetime (model, iter, column, format);
 }
 
 gboolean
index 51a279c022903c3f015093d4b7b405c850195ef3..4d42af4d1fe7ad04a3bd53a7e4444b77b2126b05 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2018 Andrea Zagli <azagli@libero.it>
+ * Copyright (C) 2010-2019 Andrea Zagli <azagli@libero.it>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -22,6 +22,8 @@
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #include <gtk/gtk.h>
 
+#include <libzakutilsgtk/libzakutilsgtk.h>
+
 #include "solipa.h"
 
 
@@ -30,10 +32,12 @@ G_BEGIN_DECLS
 G_DEPRECATED_FOR (zak_utils_file_exists)
 gboolean solipa_file_exists (const gchar *filename);
 
+G_DEPRECATED_FOR (zak_utils_gtk_liststore_select_unselect_all)
 void solipa_gtkliststore_select_unselect_all (GtkListStore *store,
                                               guint column,
                                               gboolean select);
 
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_to_csv)
 gboolean solipa_gtktreemodel_to_csv (GtkTreeModel *model, const gchar *filename,
                                  gboolean overwrite,
                                  const gchar *quote, gboolean quote_all,
@@ -43,13 +47,16 @@ gboolean solipa_gtktreemodel_to_csv (GtkTreeModel *model, const gchar *filename,
                                  guint *columns,
                                  guint n_columns);
 
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_to_csv_gui)
 guint solipa_gtktreemodel_to_csv_gui (Solipa *solipa,
                                  GtkWindow *parent,
                                  GtkTreeModel *model,
                                  gchar **columns_title,
                                  guint n_columns);
 
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_get_gtypes)
 GType *solipa_gtktreemodel_get_gtypes (GtkTreeModel *model, guint *cols);
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_copy)
 GtkTreeModel *solipa_gtktreemodel_copy (GtkTreeModel *model, gboolean only_schema);
 
 G_DEPRECATED_FOR (zak_utils_string_replace)
@@ -96,12 +103,19 @@ gchar *solipa_gdatetime_format (GDateTime *gdatetime, const gchar *format);
 G_DEPRECATED_FOR (zak_utils_round)
 gdouble solipa_round (gdouble value, guint n_decimals);
 
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_get_value_string)
 const gchar *solipa_gtk_tree_model_get_value_string (GtkTreeModel *model, GtkTreeIter *iter, gint column);
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_get_value_integer)
 gint solipa_gtk_tree_model_get_value_integer (GtkTreeModel *model, GtkTreeIter *iter, gint column);
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_get_value_double)
 gdouble solipa_gtk_tree_model_get_value_double (GtkTreeModel *model, GtkTreeIter *iter, gint column);
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_get_value_double_sql)
 const gchar *solipa_gtk_tree_model_get_value_double_sql (GtkTreeModel *model, GtkTreeIter *iter, gint column);
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_get_value_boolean)
 gboolean solipa_gtk_tree_model_get_value_boolean (GtkTreeModel *model, GtkTreeIter *iter, gint column);
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_get_value_tm)
 struct tm *solipa_gtk_tree_model_get_value_tm (GtkTreeModel *model, GtkTreeIter *iter, gint column, const gchar *format);
+G_DEPRECATED_FOR (zak_utils_gtk_treemodel_get_value_gdatetime)
 GDateTime *solipa_gtk_tree_model_get_value_gdatetime (GtkTreeModel *model, GtkTreeIter *iter, gint column, const gchar *format);
 
 gboolean solipa_chk_codice_fiscale (const gchar *codice_fiscale, gboolean empty_good);