Removed const from every return values.
authorAndrea Zagli <azagli@libero.it>
Mon, 19 Oct 2009 15:07:21 +0000 (17:07 +0200)
committerAndrea Zagli <azagli@libero.it>
Mon, 19 Oct 2009 15:07:21 +0000 (17:07 +0200)
Removed some memory leaks.
Some bugfixes.
Some new string localized.

35 files changed:
docs/reference/libgtkform-decl.txt
po/it.po
src/field.c
src/field.h
src/fieldboolean.c
src/fieldboolean.h
src/fielddatetime.c
src/fielddatetime.h
src/fieldfloat.c
src/fieldfloat.h
src/fieldinteger.c
src/fieldinteger.h
src/fieldtext.c
src/fieldtext.h
src/form.c
src/form.h
src/key.c
src/widget.c
src/widget.h
src/widgetcheck.c
src/widgetcheck.h
src/widgetcombobox.c
src/widgetcombobox.h
src/widgetentry.c
src/widgetentry.h
src/widgetlabel.c
src/widgetlabel.h
src/widgetspin.c
src/widgetspin.h
src/widgettextview.c
src/widgettextview.h
test/database.db
test/from_xml_with_db.c
test/test_db.gui
test/test_db.xml

index bb162898a5d6ad41306ff01521a67537d1e07892..74cb43a93f50c26fbdcc71910b3809387994b644 100644 (file)
@@ -54,7 +54,7 @@ void
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_widget_spin_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormWidget *widget
 </FUNCTION>
 <FUNCTION>
@@ -123,7 +123,7 @@ void
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_widget_check_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormWidget *widget
 </FUNCTION>
 <FUNCTION>
@@ -192,17 +192,17 @@ void
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_boolean_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_boolean_get_value</NAME>
-<RETURNS>const GValue *</RETURNS>
+<RETURNS>GValue *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_boolean_get_value_sql</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
@@ -278,7 +278,7 @@ struct _GtkFormWidgetClass
        {
                GObjectClass parent_class;
 
-               const gchar *(*get_value_stringify) (GtkFormWidget *fwidget);
+               gchar *(*get_value_stringify) (GtkFormWidget *fwidget);
 
                gboolean (*set_value_stringify) (GtkFormWidget *fwidget, const gchar *value);
 
@@ -307,7 +307,7 @@ GtkFormWidget *fwidget
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_widget_get_widget_name</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormWidget *fwidget
 </FUNCTION>
 <FUNCTION>
@@ -322,7 +322,7 @@ GtkFormWidget *fwidget, GtkLabel *label
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_widget_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormWidget *fwidget
 </FUNCTION>
 <FUNCTION>
@@ -391,17 +391,17 @@ void
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_text_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_text_get_value</NAME>
-<RETURNS>const GValue *</RETURNS>
+<RETURNS>GValue *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_text_get_value_sql</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
@@ -485,17 +485,17 @@ void
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_datetime_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_datetime_get_value</NAME>
-<RETURNS>const GValue *</RETURNS>
+<RETURNS>GValue *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_datetime_get_value_sql</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
@@ -599,7 +599,7 @@ void
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_widget_label_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormWidget *widget
 </FUNCTION>
 <FUNCTION>
@@ -663,17 +663,17 @@ void
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_float_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_float_get_value</NAME>
-<RETURNS>const GValue *</RETURNS>
+<RETURNS>GValue *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_float_get_value_sql</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
@@ -841,7 +841,7 @@ void
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_widget_textview_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormWidget *widget
 </FUNCTION>
 <FUNCTION>
@@ -897,9 +897,9 @@ struct _GtkFormFieldClass
        {
                GObjectClass parent_class;
 
-               const gchar *(*get_value_stringify) (GtkFormField *field);
-               const GValue *(*get_value) (GtkFormField *field);
-               const gchar *(*get_value_sql) (GtkFormField *field);
+               gchar *(*get_value_stringify) (GtkFormField *field);
+               GValue *(*get_value) (GtkFormField *field);
+               gchar *(*get_value_sql) (GtkFormField *field);
 
                gboolean (*clear) (GtkFormField *field);
                gboolean (*is_empty) (GtkFormField *field);
@@ -925,7 +925,7 @@ GtkFormWidget *fwidget
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_get_field_name</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
@@ -935,17 +935,17 @@ GtkFormField *field
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_get_value</NAME>
-<RETURNS>const GValue *</RETURNS>
+<RETURNS>GValue *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_get_value_sql</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
@@ -1213,7 +1213,7 @@ void
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_widget_combo_box_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormWidget *widget
 </FUNCTION>
 <FUNCTION>
@@ -1282,7 +1282,7 @@ void
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_widget_entry_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormWidget *widget
 </FUNCTION>
 <FUNCTION>
@@ -1351,17 +1351,17 @@ void
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_integer_get_value_stringify</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_integer_get_value</NAME>
-<RETURNS>const GValue *</RETURNS>
+<RETURNS>GValue *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
 <NAME>gtk_form_field_integer_get_value_sql</NAME>
-<RETURNS>const gchar *</RETURNS>
+<RETURNS>gchar *</RETURNS>
 GtkFormField *field
 </FUNCTION>
 <FUNCTION>
index b78f38e3a1f80be40d0f91e88d26ed376c1274f1..b96cc5f9d64b7b72752e6805e953b5ba2bf390e8 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -6,16 +6,55 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0.1.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-05 18:20+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Report-Msgid-Bugs-To: Andrea Zagli <azagli@libero.it>\n"
+"POT-Creation-Date: 2009-10-19 16:12+0200\n"
+"PO-Revision-Date: 2009-10-19 16:15+0200\n"
 "Last-Translator: Andrea Zagli <azagli@libero.it>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Italian <tp@lists.linux.it>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../src/form.c:1336
+#: ../src/fielddatetime.c:391
+msgid "GtkFormField hasn't a field name."
+msgstr "GtkFormField non ha un nome di campo."
+
+#: ../src/form.c:214
+#, c-format
+msgid "Error on loading GtkBuilder file: %s\n"
+msgstr "Errore durante il caricamento del file GtkBuilder: %s\n"
+
+#: ../src/form.c:277
+#, c-format
+msgid "Label «%s» not found."
+msgstr "Etichetta «%s» non trovata."
+
+#: ../src/form.c:429
+#, c-format
+msgid "Field of type «%s» not found."
+msgstr "Campo di tipo «%s» non trovato."
+
+#: ../src/form.c:438
+#, c-format
+msgid "Widget of type «%s» not found."
+msgstr "Widget di tipo «%s» non trovato."
+
+#. TO DO
+#: ../src/form.c:448
+msgid "The file is not a valid gtkform definition file."
+msgstr "Il file non è un file di definizione di gtkform valido."
+
+#: ../src/form.c:810 ../src/form.c:1077
+#, c-format
+msgid "Object «%s» not found."
+msgstr "Oggetto «%s» non trovato."
+
+#: ../src/form.c:1343
 #, c-format
 msgid "The field «%s» is obligatory."
 msgstr "Il campo «%s» è obbligatorio."
+
+#: ../src/widget.c:140
+#, c-format
+msgid "Widget «%s» not found."
+msgstr "Widget «%s» non trovato."
index d16a03dddd7deb3432e050179b670fe7e79462c1..a3eac8025a20d8ae39022e6dc7d146d071376c8e 100644 (file)
@@ -142,12 +142,12 @@ GtkFormField
  *
  * Returns: the field's name.
  */
-const gchar
+gchar
 *gtk_form_field_get_field_name (GtkFormField *field)
 {
        GtkFormFieldPrivate *priv = GTK_FORM_FIELD_GET_PRIVATE (field);
 
-       return (const gchar *)g_strdup (priv->field);
+       return g_strdup (priv->field);
 }
 
 /**
@@ -169,10 +169,12 @@ GtkFormWidget
  * @field: a #GtkFormField object.
  *
  */
-const gchar
+gchar
 *gtk_form_field_get_value_stringify (GtkFormField *field)
 {
-       const gchar *ret;
+       gchar *ret;
+
+       ret = g_strdup ("");
 
        if (IS_GTK_FORM_FIELD (field) && GTK_FORM_FIELD_GET_CLASS (field)->get_value_stringify != NULL)
                {
@@ -187,10 +189,10 @@ const gchar
  * @field: a #GtkFormField object.
  *
  */
-const GValue
+GValue
 *gtk_form_field_get_value (GtkFormField *field)
 {
-       const GValue *ret;
+       GValue *ret;
 
        if (IS_GTK_FORM_FIELD (field) && GTK_FORM_FIELD_GET_CLASS (field)->get_value != NULL)
                {
@@ -205,10 +207,12 @@ const GValue
  * @field: a #GtkFormField object.
  *
  */
-const gchar
+gchar
 *gtk_form_field_get_value_sql (GtkFormField *field)
 {
-       const gchar *ret;
+       gchar *ret;
+
+       ret = g_strdup ("");
 
        if (IS_GTK_FORM_FIELD (field) && GTK_FORM_FIELD_GET_CLASS (field)->get_value_sql != NULL)
                {
index d6a2e774295327ca04ffb89ef0b3d80c71cf5382..919a4b3f6420bcd7f96c99d3d6041edd32f3f2dd 100644 (file)
@@ -49,9 +49,9 @@ struct _GtkFormFieldClass
        {
                GObjectClass parent_class;
 
-               const gchar *(*get_value_stringify) (GtkFormField *field);
-               const GValue *(*get_value) (GtkFormField *field);
-               const gchar *(*get_value_sql) (GtkFormField *field);
+               gchar *(*get_value_stringify) (GtkFormField *field);
+               GValue *(*get_value) (GtkFormField *field);
+               gchar *(*get_value_sql) (GtkFormField *field);
 
                gboolean (*clear) (GtkFormField *field);
                gboolean (*is_empty) (GtkFormField *field);
@@ -65,12 +65,12 @@ GType gtk_form_field_get_type (void) G_GNUC_CONST;
 GtkFormField *gtk_form_field_new (void);
 GtkFormField *gtk_form_field_new_from_gtk_form_widget (GtkFormWidget *fwidget);
 
-const gchar *gtk_form_field_get_field_name (GtkFormField *field);
+gchar *gtk_form_field_get_field_name (GtkFormField *field);
 GtkFormWidget *gtk_form_field_get_form_widget (GtkFormField *field);
 
-const gchar *gtk_form_field_get_value_stringify (GtkFormField *field);
-const GValue *gtk_form_field_get_value (GtkFormField *field);
-const gchar *gtk_form_field_get_value_sql (GtkFormField *field);
+gchar *gtk_form_field_get_value_stringify (GtkFormField *field);
+GValue *gtk_form_field_get_value (GtkFormField *field);
+gchar *gtk_form_field_get_value_sql (GtkFormField *field);
 
 gboolean gtk_form_field_clear (GtkFormField *field);
 
index 6e7653c7f56e8ce0ec315bcf9cb7907bd0673b40..e9e5d47f037d0fbd6bf38dc78771d22c4187d5b2 100644 (file)
@@ -102,14 +102,15 @@ GtkFormField
  * @field: a #GtkFormField object.
  *
  */
-const gchar
+gchar
 *gtk_form_field_boolean_get_value_stringify (GtkFormField *field)
 {
-       const gchar *ret = NULL;
+       gchar *ret;
+       GtkFormWidget *fw;
 
-       g_return_val_if_fail (IS_GTK_FORM_FIELD_BOOLEAN (field), NULL);
+       ret = g_strdup ("");
 
-       GtkFormWidget *fw;
+       g_return_val_if_fail (IS_GTK_FORM_FIELD_BOOLEAN (field), ret);
                
        g_object_get (field,
                      "form-widget", &fw,
@@ -128,14 +129,16 @@ const gchar
  * @field: a #GtkFormField object.
  *
  */
-const GValue
+GValue
 *gtk_form_field_boolean_get_value (GtkFormField *field)
 {
-       GValue *ret = NULL;
-       const gchar *value;
+       GValue *ret;
+       gchar *value;
 
        g_return_val_if_fail (IS_GTK_FORM_FIELD_BOOLEAN (field), NULL);
 
+       ret = NULL;
+
        value = gtk_form_field_boolean_get_value_stringify (field);
 
        if (value != NULL)
@@ -143,9 +146,11 @@ const GValue
                        ret = g_malloc0 (sizeof (GValue));
                        g_value_init (ret, G_TYPE_BOOLEAN);
                        g_value_set_boolean (ret, strtol (value, NULL, 10));
+
+                       g_free (value);
                }
 
-       return (const GValue *)ret;
+       return ret;
 }
 
 /**
@@ -153,15 +158,15 @@ const GValue
  * @field: a #GtkFormField object.
  *
  */
-const gchar
+gchar
 *gtk_form_field_boolean_get_value_sql (GtkFormField *field)
 {
-       const gchar *ret;
-       const gchar *value;
+       gchar *ret;
+       gchar *value;
 
-       g_return_val_if_fail (IS_GTK_FORM_FIELD_BOOLEAN (field), NULL);
+       ret = g_strdup ("");
 
-       ret = NULL;
+       g_return_val_if_fail (IS_GTK_FORM_FIELD_BOOLEAN (field), ret);
 
        value = gtk_form_field_boolean_get_value_stringify (field);
 
@@ -172,6 +177,8 @@ const gchar
                        bool_value = gtk_form_field_boolean_str_to_boolean (value);
 
                        ret = g_strconcat ("'", (bool_value ? "1" : "0"), "'", NULL);
+
+                       g_free (value);
                }
 
        return ret;
@@ -225,7 +232,7 @@ gtk_form_filed_boolean_is_changed (GtkFormField *field)
 {
        gboolean ret = FALSE;
        GtkFormFieldBooleanPrivate *priv;
-       const gchar *value;
+       gchar *value;
 
        g_return_val_if_fail (IS_GTK_FORM_FIELD_BOOLEAN (field), FALSE);
 
@@ -235,6 +242,8 @@ gtk_form_filed_boolean_is_changed (GtkFormField *field)
 
        ret = (priv->original_value != gtk_form_field_boolean_str_to_boolean (value));
 
+       g_free (value);
+
        return ret;
 }
 
@@ -247,7 +256,7 @@ void
 gtk_form_field_boolean_set_as_origin (GtkFormField *field)
 {
        GtkFormFieldBooleanPrivate *priv;
-       const gchar *value;
+       gchar *value;
 
        g_return_if_fail (IS_GTK_FORM_FIELD_BOOLEAN (field));
 
@@ -256,6 +265,8 @@ gtk_form_field_boolean_set_as_origin (GtkFormField *field)
        value = gtk_form_field_boolean_get_value_stringify (field);
 
        priv->original_value = gtk_form_field_boolean_str_to_boolean (value);
+
+       g_free (value);
 }
 
 /**
@@ -270,7 +281,7 @@ gtk_form_field_boolean_set_from_datamodel (GtkFormField *field, GdaDataModel *dm
 {
        gboolean ret = FALSE;
        GtkFormFieldBooleanPrivate *priv;
-       const gchar *field_name;
+       gchar *field_name;
        gchar *value;
 
        g_return_val_if_fail (IS_GTK_FORM_FIELD_BOOLEAN (field), FALSE);
@@ -292,6 +303,9 @@ gtk_form_field_boolean_set_from_datamodel (GtkFormField *field, GdaDataModel *dm
 
        priv->original_value = gtk_form_field_boolean_str_to_boolean (value);
 
+       g_free (field_name);
+       g_free (value);
+
        return ret;
 }
 
@@ -328,6 +342,8 @@ gtk_form_field_boolean_str_to_boolean (const gchar *value)
                        bool_value = TRUE;
                }
 
+       g_free (str_value);
+
        return bool_value;
 }
 
index 856b566084150a0c9a2df36ed09c9c032f840eef..c1a9ca45c0238422e09dc288f6c5e443d19afe71 100644 (file)
@@ -52,9 +52,9 @@ GType gtk_form_field_boolean_get_type (void) G_GNUC_CONST;
 
 GtkFormField *gtk_form_field_boolean_new (void);
 
-const gchar *gtk_form_field_boolean_get_value_stringify (GtkFormField *field);
-const GValue *gtk_form_field_boolean_get_value (GtkFormField *field);
-const gchar *gtk_form_field_boolean_get_value_sql (GtkFormField *field);
+gchar *gtk_form_field_boolean_get_value_stringify (GtkFormField *field);
+GValue *gtk_form_field_boolean_get_value (GtkFormField *field);
+gchar *gtk_form_field_boolean_get_value_sql (GtkFormField *field);
 
 gboolean gtk_form_field_boolean_clear (GtkFormField *field);
 
index 7b323acab5fb4c9baedd53f88d78e2235d4e918e..ff56a5e520f55ffa43251777dae2ff721ab95764 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+#ifdef HAVE_CONFIG_H
+       #include <config.h>
+#endif
+
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
 
+#include <glib/gi18n-lib.h>
+
 #include "widget.h"
 #include "fielddatetime.h"
 
@@ -135,16 +141,15 @@ GtkFormField
  * @field: a #GtkFormField object.
  *
  */
-const gchar
+gchar
 *gtk_form_field_datetime_get_value_stringify (GtkFormField *field)
 {
-       const gchar *ret;
-
+       gchar *ret;
        GtkFormWidget *fw;
 
-       g_return_val_if_fail (IS_GTK_FORM_FIELD_DATETIME (field), NULL);
+       ret = g_strdup ("");
 
-       ret = NULL;
+       g_return_val_if_fail (IS_GTK_FORM_FIELD_DATETIME (field), ret);
 
        g_object_get (field,
                      "form-widget", &fw,
@@ -164,12 +169,12 @@ const gchar
  *
  * Returns: a #GValue of type G_TYPE_POINTER that point to a struct tm.
  */
-const GValue
+GValue
 *gtk_form_field_datetime_get_value (GtkFormField *field)
 {
        struct tm *datetime;
        GValue *ret;
-       const gchar *value;
+       gchar *value;
        GtkFormFieldDateTimePrivate *priv;
 
        g_return_val_if_fail (IS_GTK_FORM_FIELD_DATETIME (field), NULL);
@@ -186,9 +191,11 @@ const GValue
                        ret = g_malloc0 (sizeof (GValue));
                        g_value_init (ret, G_TYPE_POINTER);
                        g_value_set_pointer (ret, datetime);
+
+                       g_free (value);
                }
 
-       return (const GValue *)ret;
+       return ret;
 }
 
 /**
@@ -196,37 +203,42 @@ const GValue
  * @field: a #GtkFormField object.
  *
  */
-const gchar
+gchar
 *gtk_form_field_datetime_get_value_sql (GtkFormField *field)
 {
-       const gchar *ret;
-       const gchar *value;
-       const gchar *format;
+       gchar *ret;
+       gchar *value;
+       gchar *format;
        GtkFormFieldDateTimePrivate *priv;
 
-       g_return_val_if_fail (IS_GTK_FORM_FIELD_DATETIME (field), NULL);
+       ret = g_strdup ("''");
+
+       g_return_val_if_fail (IS_GTK_FORM_FIELD_DATETIME (field), ret);
 
        priv = GTK_FORM_FIELD_DATETIME_GET_PRIVATE (GTK_FORM_FIELD_DATETIME (field));
 
-       ret = NULL;
        value = gtk_form_field_datetime_get_value_stringify (field);
        format = gtk_form_field_datetime_get_str_format (GTK_FORM_FIELD_DATETIME (field));
 
-       if (value != NULL)
+       if (value != NULL && format != NULL)
                {
                        struct tm *datetime;
 
                        datetime = gtk_form_field_datetime_get_tm_from_str (value, priv->display_format);
                        if (datetime != NULL)
                                {
-                                       gchar *value;
+                                       gchar *dvalue;
 
-                                       value = gtk_form_field_datetime_get_str_from_tm (datetime, format);
-                                       if (value != NULL)
+                                       dvalue = gtk_form_field_datetime_get_str_from_tm (datetime, format);
+                                       if (dvalue != NULL)
                                                {
-                                                       ret = g_strconcat ("'", value, "'", NULL);
+                                                       ret = g_strconcat ("'", dvalue, "'", NULL);
+
+                                                       g_free (dvalue);
                                                }
                                }
+
+                       g_free (value);
                }
 
        return ret;
@@ -256,6 +268,8 @@ gtk_form_field_datetime_clear (GtkFormField *field)
                        if (value != NULL)
                                {
                                        ret = gtk_form_field_datetime_set_value_stringify (field, value);
+
+                                       g_free (value);
                                }
                }
        else
@@ -378,12 +392,16 @@ gtk_form_field_datetime_set_from_datamodel (GtkFormField *field, GdaDataModel *d
                        ret = gtk_form_field_datetime_set_value_stringify (field, value);
 
                        priv->original_value = g_memdup (datetime, sizeof (struct tm));
+
+                       g_free (value);
                }
        else
                {
-                       g_warning ("GtkFormField hasn't a field name.");
+                       g_warning (_("GtkFormField hasn't a field name."));
                }
 
+       g_free (field_name);
+
        return ret;
 }
 
@@ -416,6 +434,7 @@ struct tm
        new_str = g_strstrip (g_strdup (str));
        if (g_strcmp0 (new_str, "") == 0)
                {
+                       g_free (new_str);
                        return NULL;
                }
 
@@ -435,18 +454,27 @@ struct tm
 
        if (delimiters == NULL || g_strcmp0 (delimiters, "") == 0)
                {
+                       g_free (delimiters);
+                       g_free (new_format);
+                       g_free (new_str);
                        return NULL;
                }
 
        str_tokens = g_strsplit_set (str, delimiters, -1);
        if (str_tokens == NULL)
                {
+                       g_free (delimiters);
+                       g_free (new_format);
+                       g_free (new_str);
                        return NULL;
                }
 
        format_tokens = g_strsplit_set (format, delimiters, -1);
        if (format_tokens == NULL)
                {
+                       g_free (delimiters);
+                       g_free (new_format);
+                       g_free (new_str);
                        return NULL;
                }
 
@@ -485,6 +513,10 @@ struct tm
                                }
                }
 
+       g_free (delimiters);
+       g_free (new_format);
+       g_free (new_str);
+
        return ret;
 }
 
@@ -508,7 +540,9 @@ gchar
 {
        gchar *ret;
 
-       g_return_val_if_fail (datetime != NULL, "");
+       ret = g_strdup ("");
+
+       g_return_val_if_fail (datetime != NULL, ret);
 
        ret = gtk_form_field_datetime_str_replace (format, "%Y",
                                                   g_strdup_printf ("%04u", datetime->tm_year + 1900));
@@ -651,6 +685,7 @@ gtk_form_field_datetime_set_value_stringify (GtkFormField *field, const gchar *v
  * gtk_form_field_datetime_get_str_format:
  * @field: a #GtkFormFieldDateTime object.
  *
+ * Returns: the strftime format string for the current type.
  */
 static gchar
 *gtk_form_field_datetime_get_str_format (GtkFormFieldDateTime *field)
@@ -658,7 +693,9 @@ static gchar
        gchar *format;
        GtkFormFieldDateTimePrivate *priv;
 
-       g_return_val_if_fail (IS_GTK_FORM_FIELD_DATETIME (field), NULL);
+       format = NULL;
+
+       g_return_val_if_fail (IS_GTK_FORM_FIELD_DATETIME (field), format);
 
        priv = GTK_FORM_FIELD_DATETIME_GET_PRIVATE (field);
 
@@ -675,6 +712,11 @@ static gchar
                        case GTK_FORM_FIELD_DATETIME_TYPE_TIME:
                                format = g_strdup ("%H-%M-%S");
                                break;
+
+                       default:
+                               g_warning (_("GtkFormFieldDateTimeType not supported: %d."), priv->type);
+                               format = NULL;
+                               break;
                }
 
        return format;
@@ -686,7 +728,7 @@ static gchar
  * @origin: the string to replace.
  * @replace: the string to insert.
  *
- * Returns: a string with replaced string.
+ * Returns: a string with replaced string. Must be freed.
  */
 static gchar
 *gtk_form_field_datetime_str_replace (const gchar *string,
@@ -700,7 +742,7 @@ static gchar
 
        if (p == NULL)
                {
-                       return (gchar *)string;
+                       return g_strdup (string);
                }
 
        ret = g_strndup (string, p - string);
index f6a0f7a49a64dd36658a84fba1db0205358e22c1..09dba45254d54baa3796c67ca218097702b5c2c9 100644 (file)
@@ -59,9 +59,9 @@ enum
 
 GtkFormField *gtk_form_field_datetime_new (void);
 
-const gchar *gtk_form_field_datetime_get_value_stringify (GtkFormField *field);
-const GValue *gtk_form_field_datetime_get_value (GtkFormField *field);
-const gchar *gtk_form_field_datetime_get_value_sql (GtkFormField *field);
+gchar *gtk_form_field_datetime_get_value_stringify (GtkFormField *field);
+GValue *gtk_form_field_datetime_get_value (GtkFormField *field);
+gchar *gtk_form_field_datetime_get_value_sql (GtkFormField *field);
 
 gboolean gtk_form_field_datetime_clear (GtkFormField *field);
 
index 8695f4d3172615c4914ad4e008e985457ec4d43e..a8a5159761fb4a8b6ab1635994ed474c0c58a906 100644 (file)
@@ -102,16 +102,16 @@ GtkFormField
  * @field: a #GtkFormField object.
  *
  */
-const gchar
+gchar
 *gtk_form_field_float_get_value_stringify (GtkFormField *field)
 {
-       const gchar *ret;
+       gchar *ret;
 
        GtkFormWidget *fw;
 
-       g_return_val_if_fail (IS_GTK_FORM_FIELD_FLOAT (field), NULL);
+       ret = g_strdup ("");
 
-       ret = NULL;
+       g_return_val_if_fail (IS_GTK_FORM_FIELD_FLOAT (field), ret);
 
        g_object_get (field,
                      "form-widget", &fw,
@@ -119,13 +119,15 @@ const gchar
 
        if (IS_GTK_FORM_WIDGET (fw))
                {
-                       const gchar *value;
+                       gchar *value;
 
                        value = gtk_form_widget_get_value_stringify (fw);
 
                        if (value != NULL)
                                {
                                        ret = g_strdup_printf ("%f", strtod (value, NULL));
+
+                                       g_free (value);
                                }
                }
 
@@ -137,21 +139,26 @@ const gchar
  * @field: a #GtkFormField object.
  *
  */
-const GValue
+GValue
 *gtk_form_field_float_get_value (GtkFormField *field)
 {
-       GValue *ret = NULL;
+       GValue *ret;
+       gchar *value;
 
-       const gchar *value = gtk_form_field_float_get_value_stringify (field);
+       ret = NULL;
+
+       value = gtk_form_field_float_get_value_stringify (field);
 
        if (value != NULL)
                {
                        ret = g_malloc0 (sizeof (GValue));
                        g_value_init (ret, G_TYPE_FLOAT);
                        g_value_set_float (ret, strtod (value, NULL));
+
+                       g_free (value);
                }
 
-       return (const GValue *)ret;
+       return ret;
 }
 
 /**
@@ -159,11 +166,15 @@ const GValue
  * @field: a #GtkFormField object.
  *
  */
-const gchar
+gchar
 *gtk_form_field_float_get_value_sql (GtkFormField *field)
 {
-       const gchar *ret = NULL;
-       const gchar *value = gtk_form_field_float_get_value_stringify (field);
+       gchar *ret;
+       gchar *value;
+
+       ret = g_strdup ("");
+
+       value = gtk_form_field_float_get_value_stringify (field);
 
        if (value != NULL)
                {
@@ -175,6 +186,8 @@ const gchar
                        ret = g_strdup_printf ("%f", fval);
                
                        setlocale (LC_NUMERIC, cur);
+
+                       g_free (value);
                }
 
        return ret;
@@ -208,7 +221,7 @@ gboolean
 gtk_form_field_float_is_empty (GtkFormField *field)
 {
        gboolean ret;
-       const gchar *value;
+       gchar *value;
 
        g_return_val_if_fail (IS_GTK_FORM_FIELD_FLOAT (field), TRUE);
 
@@ -223,6 +236,8 @@ gtk_form_field_float_is_empty (GtkFormField *field)
                        ret = FALSE;
                }
 
+       g_free (value);
+
        return ret;
 }
 
@@ -278,8 +293,8 @@ gtk_form_field_float_set_from_datamodel (GtkFormField *field, GdaDataModel *dm,
 {
        gboolean ret = FALSE;
        GtkFormFieldFloatPrivate *priv;
-       const gchar *value;
-       const gchar *field_name;
+       gchar *value;
+       gchar *field_name;
 
        g_return_val_if_fail (IS_GTK_FORM_FIELD_FLOAT (field), FALSE);
        g_return_val_if_fail (GDA_IS_DATA_MODEL (dm), FALSE);
@@ -294,6 +309,9 @@ gtk_form_field_float_set_from_datamodel (GtkFormField *field, GdaDataModel *dm,
 
        priv->original_value = g_strtod (value, NULL);
 
+       g_free (field_name);
+       g_free (value);
+
        return ret;
 }
 
index 60a7e0ef4f50d74a578f37def2b02f88d36731ce..f048571cc5e8b540adb9b892b83fc2ad5794a543 100644 (file)
@@ -52,9 +52,9 @@ GType gtk_form_field_float_get_type (void) G_GNUC_CONST;
 
 GtkFormField *gtk_form_field_float_new (void);
 
-const gchar *gtk_form_field_float_get_value_stringify (GtkFormField *field);
-const GValue *gtk_form_field_float_get_value (GtkFormField *field);
-const gchar *gtk_form_field_float_get_value_sql (GtkFormField *field);
+gchar *gtk_form_field_float_get_value_stringify (GtkFormField *field);
+GValue *gtk_form_field_float_get_value (GtkFormField *field);
+gchar *gtk_form_field_float_get_value_sql (GtkFormField *field);
 
 gboolean gtk_form_field_float_clear (GtkFormField *field);
 
index 934e4a3bea23a82886824dae4d4a0ec19a1d73ae..06afcb2853c2bf44ea6036a6afc0523b578e32b6 100644 (file)
@@ -100,14 +100,14 @@ GtkFormField
  * @field: a #GtkFormField object.
  *
  */
-const gchar
+gchar
 *gtk_form_field_integer_get_value_stringify (GtkFormField *field)
 {
-       const gchar *ret;
+       gchar *ret;
 
        GtkFormWidget *fw;
 
-       ret = NULL;
+       ret = g_strdup ("");
 
        g_object_get (field,
                      "form-widget", &fw,
@@ -115,13 +115,15 @@ const gchar
 
        if (IS_GTK_FORM_WIDGET (fw))
                {
-                       const gchar *value;
+                       gchar *value;
 
                        value = gtk_form_widget_get_value_stringify (fw);
 
                        if (value != NULL)
                                {
                                        ret = g_strdup_printf ("%d", strtol (value, NULL, 10));
+
+                                       g_free (value);
                                }
                }
 
@@ -133,11 +135,11 @@ const gchar
  * @field: a #GtkFormField object.
  *
  */
-const GValue
+GValue
 *gtk_form_field_integer_get_value (GtkFormField *field)
 {
        GValue *ret;
-       const gchar *value;
+       gchar *value;
 
        g_return_val_if_fail (IS_GTK_FORM_FIELD_INTEGER (field), NULL);
 
@@ -150,9 +152,11 @@ const GValue
                        ret = g_malloc0 (sizeof (GValue));
                        g_value_init (ret, G_TYPE_INT);
                        g_value_set_int (ret, atol (value));
+
+                       g_free (value);
                }
 
-       return (const GValue *)ret;
+       return ret;
 }
 
 /**
@@ -160,21 +164,12 @@ const GValue
  * @field: a #GtkFormField object.
  *
  */
-const gchar
+gchar
 *gtk_form_field_integer_get_value_sql (GtkFormField *field)
 {
-       const gchar *ret;
-       const gchar *value;
-
-       g_return_val_if_fail (IS_GTK_FORM_FIELD_INTEGER (field), NULL);
-
-       ret = NULL;
-
-       value = gtk_form_field_integer_get_value_stringify (field);
-
-       ret = value;
+       g_return_val_if_fail (IS_GTK_FORM_FIELD_INTEGER (field), "0");
 
-       return ret;
+       return gtk_form_field_integer_get_value_stringify (field);
 }
 
 /**
@@ -205,7 +200,7 @@ gboolean
 gtk_form_field_integer_is_empty (GtkFormField *field)
 {
        gboolean ret;
-       const gchar *value;
+       gchar *value;
 
        g_return_val_if_fail (IS_GTK_FORM_FIELD_INTEGER (field), TRUE);
 
@@ -220,6 +215,8 @@ gtk_form_field_integer_is_empty (GtkFormField *field)
                        ret = FALSE;
                }
 
+       g_free (value);
+
        return ret;
 }
 
@@ -274,8 +271,8 @@ gtk_form_field_integer_set_from_datamodel (GtkFormField *field, GdaDataModel *dm
 {
        gboolean ret = FALSE;
        GtkFormFieldIntegerPrivate *priv;
-       const gchar *value;
-       const gchar *field_name;
+       gchar *value;
+       gchar *field_name;
 
        g_return_val_if_fail (GDA_IS_DATA_MODEL (dm), FALSE);
 
@@ -289,6 +286,9 @@ gtk_form_field_integer_set_from_datamodel (GtkFormField *field, GdaDataModel *dm
 
        priv->original_value = strtol (value, NULL, 10);
 
+       g_free (field_name);
+       g_free (value);
+
        return ret;
 }
 
index 0fe0afebe7af4cf6b2ec18be1863605f9b44a872..e559ac9d438bd30ebf89794cd0a5806037f39c1c 100644 (file)
@@ -52,9 +52,9 @@ GType gtk_form_field_integer_get_type (void) G_GNUC_CONST;
 
 GtkFormField *gtk_form_field_integer_new (void);
 
-const gchar *gtk_form_field_integer_get_value_stringify (GtkFormField *field);
-const GValue *gtk_form_field_integer_get_value (GtkFormField *field);
-const gchar *gtk_form_field_integer_get_value_sql (GtkFormField *field);
+gchar *gtk_form_field_integer_get_value_stringify (GtkFormField *field);
+GValue *gtk_form_field_integer_get_value (GtkFormField *field);
+gchar *gtk_form_field_integer_get_value_sql (GtkFormField *field);
 
 gboolean gtk_form_field_integer_clear (GtkFormField *field);
 
index ec7019423b8a44eab644d533206e7d35d27e4950..72db199a470108899165adc5fdeb341339451f49 100644 (file)
@@ -103,10 +103,10 @@ GtkFormField
  * @field: a #GtkFormField object.
  *
  */
-const gchar
+gchar
 *gtk_form_field_text_get_value_stringify (GtkFormField *field)
 {
-       const gchar *ret = NULL;
+       gchar *ret;
 
        GtkFormWidget *fw;
                
@@ -114,6 +114,8 @@ const gchar
                      "form-widget", &fw,
                      NULL);
 
+       ret = g_strdup ("");
+
        if (IS_GTK_FORM_WIDGET (fw))
                {
                        ret = gtk_form_widget_get_value_stringify (fw);
@@ -127,21 +129,26 @@ const gchar
  * @field: a #GtkFormField object.
  *
  */
-const GValue
+GValue
 *gtk_form_field_text_get_value (GtkFormField *field)
 {
-       GValue *ret = NULL;
+       GValue *ret;
+       gchar *value;
+
+       ret = NULL;
 
-       const gchar *value = gtk_form_field_text_get_value_stringify (field);
+       value = gtk_form_field_text_get_value_stringify (field);
 
        if (value != NULL)
                {
                        ret = g_malloc0 (sizeof (GValue));
                        g_value_init (ret, G_TYPE_STRING);
                        g_value_set_string (ret, value);
+
+                       g_free (value);
                }
 
-       return (const GValue *)ret;
+       return ret;
 }
 
 /**
@@ -149,15 +156,21 @@ const GValue
  * @field: a #GtkFormField object.
  *
  */
-const gchar
+gchar
 *gtk_form_field_text_get_value_sql (GtkFormField *field)
 {
-       const gchar *ret = NULL;
-       const gchar *value = gtk_form_field_text_get_value_stringify (field);
+       gchar *ret;
+       gchar *value;
+
+       ret = g_strup ("");
+
+       value = gtk_form_field_text_get_value_stringify (field);
 
        if (value != NULL)
                {
                        ret = g_strconcat ("'", gdaex_strescape (value, NULL), "'", NULL);
+
+                       g_free (value);
                }
 
        return ret;
@@ -191,13 +204,13 @@ gboolean
 gtk_form_field_text_is_empty (GtkFormField *field)
 {
        gboolean ret;
-       const gchar *value;
+       gchar *value;
 
        g_return_val_if_fail (IS_GTK_FORM_FIELD_TEXT (field), TRUE);
 
        value = gtk_form_field_text_get_value_stringify (field);
 
-       if (g_strcmp0 (value, "") == 0)
+       if (value != NULL && g_strcmp0 (value, "") == 0)
                {
                        ret = TRUE;
                }
@@ -206,6 +219,8 @@ gtk_form_field_text_is_empty (GtkFormField *field)
                        ret = FALSE;
                }
 
+       g_free (value);
+
        return ret;
 }
 
@@ -219,7 +234,7 @@ gtk_form_field_text_is_changed (GtkFormField *field)
 {
        gboolean ret = FALSE;
        GtkFormFieldTextPrivate *priv;
-       const gchar *value;
+       gchar *value;
 
        g_return_val_if_fail (IS_GTK_FORM_FIELD_TEXT (field), FALSE);
 
@@ -229,6 +244,8 @@ gtk_form_field_text_is_changed (GtkFormField *field)
 
        ret = (g_strcmp0 (priv->original_value, value) != 0);
 
+       g_free (value);
+
        return ret;
 }
 
@@ -262,7 +279,7 @@ gtk_form_field_text_set_from_datamodel (GtkFormField *field, GdaDataModel *dm, g
        gboolean ret = FALSE;
        GtkFormFieldTextPrivate *priv;
        gchar *strret;
-       const gchar *field_name;
+       gchar *field_name;
 
        g_return_val_if_fail (IS_GTK_FORM_FIELD_TEXT (field), FALSE);
        g_return_val_if_fail (GDA_IS_DATA_MODEL (dm), FALSE);
@@ -280,6 +297,9 @@ gtk_form_field_text_set_from_datamodel (GtkFormField *field, GdaDataModel *dm, g
 
        priv->original_value = g_strdup (strret);
 
+       g_free (field_name);
+       g_free (strret);
+
        return ret;
 }
 
index b7ec022b9d40fdbaa4324240e0f5c02cee40f556..5a96a513a640dafc3f015ca1e1b1bcd16d82655b 100644 (file)
@@ -52,9 +52,9 @@ GType gtk_form_field_text_get_type (void) G_GNUC_CONST;
 
 GtkFormField *gtk_form_field_text_new (void);
 
-const gchar *gtk_form_field_text_get_value_stringify (GtkFormField *field);
-const GValue *gtk_form_field_text_get_value (GtkFormField *field);
-const gchar *gtk_form_field_text_get_value_sql (GtkFormField *field);
+gchar *gtk_form_field_text_get_value_stringify (GtkFormField *field);
+GValue *gtk_form_field_text_get_value (GtkFormField *field);
+gchar *gtk_form_field_text_get_value_sql (GtkFormField *field);
 
 gboolean gtk_form_field_text_clear (GtkFormField *field);
 
index a6301cb3c9670ad3152799dcd20467fb379c8b4c..b107042590f3cb0af6c02708479d4e28fca73d55 100644 (file)
@@ -211,7 +211,7 @@ GtkForm
                                                                                        if (gtk_builder_add_from_file (priv->gtkbuilder, filename, &error) <= 0)
                                                                                                {
                                                                                                        priv->gtkbuilder = NULL;
-                                                                                                       g_warning ("Error on loading GtkBuilder file: %s\n",
+                                                                                                       g_warning (_("Error on loading GtkBuilder file: %s\n"),
                                                                                                                   error->message);
                                                                                                }
                                                                                }
@@ -274,7 +274,7 @@ GtkForm
                                                                                                                                }
                                                                                                                        else
                                                                                                                                {
-                                                                                                                                       g_warning ("Label «%s» not found.", label);
+                                                                                                                                       g_warning (_("Label «%s» not found."), label);
                                                                                                                                }
                                                                                                                }
                                                                                                }
@@ -426,7 +426,7 @@ GtkForm
                                                                                                                                }
                                                                                                                        else
                                                                                                                                {
-                                                                                                                                       g_warning ("Field of type «%s» not found.", type);
+                                                                                                                                       g_warning (_("Field of type «%s» not found."), type);
                                                                                                                                }
                                                                                                                } 
 
@@ -435,7 +435,7 @@ GtkForm
                                                                                }
                                                                        else
                                                                                {
-                                                                                       g_warning ("Widget of type «%s» not found.", type);
+                                                                                       g_warning (_("Widget of type «%s» not found."), type);
                                                                                }
                                                                }
 
@@ -445,7 +445,7 @@ GtkForm
                        else
                                {
                                        /* TO DO */
-                                       g_warning ("The file is not a valid gtkform definition file.");
+                                       g_warning (_("The file is not a valid gtkform definition file."));
                                }
                }
 
@@ -500,18 +500,23 @@ GtkBuilder
  * gtk_form_get_table:
  * @form: a #GtkForm object.
  *
- * Returns: the table's name associated to the form.
+ * Returns: the table's name associated to the form. Must be freed.
  */
-const gchar
+gchar
 *gtk_form_get_table (GtkForm *form)
 {
+       gchar *ret;
        GtkFormPrivate *priv;
 
-       g_return_val_if_fail (IS_GTK_FORM (form), NULL);
+       ret = g_strdup ("");
+
+       g_return_val_if_fail (IS_GTK_FORM (form), ret);
 
        priv = GTK_FORM_GET_PRIVATE (form);
 
-       return (const gchar *)g_strdup (priv->table);
+       ret = g_strdup (priv->table);
+
+       return ret;
 }
 
 /**
@@ -539,8 +544,8 @@ gtk_form_set_table (GtkForm *form, const gchar *table)
  *
  * Returns: the #GtkFormKey associated to the form.
  */
-GtkFormKey *
-gtk_form_get_key (GtkForm *form)
+GtkFormKey
+*gtk_form_get_key (GtkForm *form)
 {
        GtkFormPrivate *priv;
 
@@ -807,7 +812,7 @@ GObject
                                }
                        else
                                {
-                                       g_warning ("Object «%s» not found.", object_name);
+                                       g_warning (_("Object «%s» not found."), object_name);
                                }
                }
 
@@ -1074,7 +1079,7 @@ gtk_form_set_sensitive_by_name (GtkForm *form, gboolean sensitive, ...)
                                }
                        else
                                {
-                                       g_warning ("Object «%s» not found.", object_name);
+                                       g_warning (_("Object «%s» not found."), object_name);
                                }
                }
 
@@ -1129,7 +1134,7 @@ gchar
        gchar *where = "";
        const gchar *field_name;
 
-       g_return_val_if_fail (IS_GTK_FORM (form), NULL);
+       g_return_val_if_fail (IS_GTK_FORM (form), sql);
 
        priv = GTK_FORM_GET_PRIVATE (form);
 
index bdc2300350143521db64fe93aaa84ff8b9e41b44..210149747be5206c1b277d94b4ba6c99cd4c3cdb 100644 (file)
@@ -60,7 +60,7 @@ GtkForm *gtk_form_new_from_file (const gchar *filename, GtkBuilder *gtkbuilder);
 
 GtkBuilder *gtk_form_get_gtkbuilder (GtkForm *form);
 
-const gchar *gtk_form_get_table (GtkForm *form);
+gchar *gtk_form_get_table (GtkForm *form);
 void gtk_form_set_table (GtkForm *form, const gchar *table);
 
 GtkFormKey *gtk_form_get_key (GtkForm *form);
index 0860e1a0411f4654543861adecda7f862760f26f..4d24a44c260d14000e1820e903c7a1d90f6e9596 100644 (file)
--- a/src/key.c
+++ b/src/key.c
@@ -192,7 +192,7 @@ gchar
        GtkFormKeyPrivate *priv;
        GSList *fields;
 
-       g_return_val_if_fail (IS_GTK_FORM_KEY (gtk_form_key), NULL);
+       g_return_val_if_fail (IS_GTK_FORM_KEY (gtk_form_key), sql);
 
        priv = GTK_FORM_KEY_GET_PRIVATE (gtk_form_key);
 
@@ -217,6 +217,8 @@ gchar
                        sql = g_strconcat (" WHERE ", g_strdup (sql + 5), NULL);
                }
 
+       g_free (field_name);
+
        return sql;
 }
 
index 9522816ceae81ced999041fe34396f87c795791e..6a9e23419aa3102505d835c0a93eefd5ed06f7c7 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+#ifdef HAVE_CONFIG_H
+       #include <config.h>
+#endif
+
+#include <glib/gi18n-lib.h>
+
 #include <gtk/gtk.h>
 
 #include "widget.h"
@@ -131,7 +137,7 @@ gtk_form_widget_set_from_gtkbuilder (GtkFormWidget *fwidget,
                }
        else
                {
-                       g_warning ("Widget «%s» not found.", widget_name);
+                       g_warning (_("Widget «%s» not found."), widget_name);
                }
 
        return ret;
@@ -158,18 +164,23 @@ GtkWidget
  * gtk_form_widget_get_widget_name:
  * @fwidget: a #GtkFormWidget object.
  *
- * Returns: the #GtkFormWidget's name.
+ * Returns: the #GtkFormWidget's name. Must be freed.
  */
-const gchar
+gchar
 *gtk_form_widget_get_widget_name (GtkFormWidget *fwidget)
 {
+       gchar *ret;
        GtkFormWidgetPrivate *priv;
 
-       g_return_val_if_fail (IS_GTK_FORM_WIDGET (fwidget), NULL);
+       ret = g_strdup ("");
+
+       g_return_val_if_fail (IS_GTK_FORM_WIDGET (fwidget), ret);
 
        priv = GTK_FORM_WIDGET_GET_PRIVATE (fwidget);
 
-       return (const gchar *)g_strdup (priv->widget_name);
+       ret = g_strdup (priv->widget_name);
+
+       return ret;
 }
 
 /**
@@ -212,14 +223,21 @@ gtk_form_widget_set_label (GtkFormWidget *fwidget, GtkLabel *label)
  * gtk_form_widget_get_value_stringify:
  * @fwidget: a #GtkFormWidget object.
  *
+ * Returns: The widget's value as a string. Must be freed.
  */
-const gchar
+gchar
 *gtk_form_widget_get_value_stringify (GtkFormWidget *fwidget)
 {
+       gchar *ret;
+
+       ret = NULL;
+
        if (IS_GTK_FORM_WIDGET (fwidget) && GTK_FORM_WIDGET_GET_CLASS (fwidget)->get_value_stringify != NULL)
                {
-                       GTK_FORM_WIDGET_GET_CLASS (fwidget)->get_value_stringify (fwidget);
+                       ret = GTK_FORM_WIDGET_GET_CLASS (fwidget)->get_value_stringify (fwidget);
                }
+
+       return ret;
 }
 
 /**
@@ -231,10 +249,14 @@ const gchar
 gboolean
 gtk_form_widget_set_value_stringify (GtkFormWidget *fwidget, const gchar *value)
 {
+       gboolean ret;
+
        if (IS_GTK_FORM_WIDGET (fwidget) && GTK_FORM_WIDGET_GET_CLASS (fwidget)->set_value_stringify != NULL)
                {
-                       GTK_FORM_WIDGET_GET_CLASS (fwidget)->set_value_stringify (fwidget, value);
+                       ret = GTK_FORM_WIDGET_GET_CLASS (fwidget)->set_value_stringify (fwidget, value);
                }
+
+       return ret;
 }
 
 /**
index 29e07022c58eed96830366ef52fb942857b42dfe..6d3199a41b9c0534796d545a0aa74d3ce8dca377 100644 (file)
@@ -46,7 +46,7 @@ struct _GtkFormWidgetClass
        {
                GObjectClass parent_class;
 
-               const gchar *(*get_value_stringify) (GtkFormWidget *fwidget);
+               gchar *(*get_value_stringify) (GtkFormWidget *fwidget);
 
                gboolean (*set_value_stringify) (GtkFormWidget *fwidget, const gchar *value);
 
@@ -63,12 +63,12 @@ gboolean gtk_form_widget_set_from_gtkbuilder (GtkFormWidget *fwidget,
 
 GtkWidget *gtk_form_widget_get_widget (GtkFormWidget *fwidget);
 
-const gchar *gtk_form_widget_get_widget_name (GtkFormWidget *fwidget);
+gchar *gtk_form_widget_get_widget_name (GtkFormWidget *fwidget);
 
 GtkWidget *gtk_form_widget_get_label (GtkFormWidget *fwidget);
 void gtk_form_widget_set_label (GtkFormWidget *fwidget, GtkLabel *label);
 
-const gchar *gtk_form_widget_get_value_stringify (GtkFormWidget *fwidget);
+gchar *gtk_form_widget_get_value_stringify (GtkFormWidget *fwidget);
 
 gboolean gtk_form_widget_set_value_stringify (GtkFormWidget *fwidget, const gchar *value);
 
index 3875b9d6d5dcba0a33fda5afb65f71c8d20a8d62..b822f1b1712bf35fcf66ec8bbf1776cc1d586c88 100644 (file)
@@ -88,13 +88,15 @@ GtkFormWidget
  * @widget:
  *
  */
-const gchar
+gchar
 *gtk_form_widget_check_get_value_stringify (GtkFormWidget *fwidget)
 {
        GtkWidget *w;
        gchar *ret;
 
-       g_return_val_if_fail (IS_GTK_FORM_WIDGET_CHECK (fwidget), "");
+       ret = g_strdup ("FALSE");
+
+       g_return_val_if_fail (IS_GTK_FORM_WIDGET_CHECK (fwidget), ret);
 
        w = gtk_form_widget_get_widget (fwidget);
 
@@ -102,10 +104,6 @@ const gchar
                {
                        ret = g_strdup ("TRUE");
                }
-       else
-               {
-                       ret = g_strdup ("FALSE");
-               }
 
        return ret;
 }
index 9a337f7e2fd19e2ba2641fa1615e3d1df36e18d7..f257fb32ebd3bd47562755b141bf6aff16124996 100644 (file)
@@ -50,7 +50,7 @@ GType gtk_form_widget_check_get_type (void) G_GNUC_CONST;
 
 GtkFormWidget *gtk_form_widget_check_new (void);
 
-const gchar *gtk_form_widget_check_get_value_stringify (GtkFormWidget *widget);
+gchar *gtk_form_widget_check_get_value_stringify (GtkFormWidget *widget);
 
 gboolean gtk_form_widget_check_set_value_stringify (GtkFormWidget *fwidget, const gchar *value);
 
index e9bd7f4e437ff4ff988fccc9466209b53e709ee6..b107b870e44c6ebf538c068844519ac1ef5c0f27 100644 (file)
@@ -95,18 +95,23 @@ GtkFormWidget
  * @fwidget: a #GtkFormWidget object.
  *
  */
-const gchar
+gchar
 *gtk_form_widget_combo_box_get_value_stringify (GtkFormWidget *fwidget)
 {
-       const gchar *ret = "";
+       gchar *ret;
+       GtkWidget *w;
+       GtkFormWidgetComboBoxPrivate *priv;
+       GtkTreeModel *tmodel;
 
-       g_return_val_if_fail (IS_GTK_FORM_WIDGET_COMBO_BOX (fwidget), NULL);
+       ret = g_strdup ("");
 
-       GtkWidget *w = gtk_form_widget_get_widget (fwidget);
+       g_return_val_if_fail (IS_GTK_FORM_WIDGET_COMBO_BOX (fwidget), ret);
 
-       GtkFormWidgetComboBoxPrivate *priv = GTK_FORM_WIDGET_COMBO_BOX_GET_PRIVATE (fwidget);
+       w = gtk_form_widget_get_widget (fwidget);
 
-       GtkTreeModel *tmodel = gtk_combo_box_get_model (GTK_COMBO_BOX (w));
+       priv = GTK_FORM_WIDGET_COMBO_BOX_GET_PRIVATE (fwidget);
+
+       tmodel = gtk_combo_box_get_model (GTK_COMBO_BOX (w));
        if (tmodel != NULL)
                {
                        GtkTreeIter iter;
@@ -121,7 +126,10 @@ const gchar
                                        g_value_init (gvstr, G_TYPE_STRING);
                                        g_value_transform (gvalue, gvstr);
                                
-                                       ret = g_value_get_string (gvstr);
+                                       ret = g_strdup (g_value_get_string (gvstr));
+
+                                       g_value_unset (gvstr);
+                                       g_value_unset (gvalue);
                                }
                }
 
index cf069ab4ee887a760240ed5e224c4d2a3e669f30..6ef3080841b4c27e100c3ba2a0694d714d948ec0 100644 (file)
@@ -50,7 +50,7 @@ GType gtk_form_widget_combo_box_get_type (void) G_GNUC_CONST;
 
 GtkFormWidget *gtk_form_widget_combo_box_new (void);
 
-const gchar *gtk_form_widget_combo_box_get_value_stringify (GtkFormWidget *widget);
+gchar *gtk_form_widget_combo_box_get_value_stringify (GtkFormWidget *widget);
 
 gboolean gtk_form_widget_combo_box_set_value_stringify (GtkFormWidget *fwidget, const gchar *value);
 
index 4983084dfa4cc085593de66a248049c61668c3c8..687d92b37861ad8bfcbc2a962de435f61afd9f07 100644 (file)
@@ -84,12 +84,12 @@ GtkFormWidget
  * @widget:
  *
  */
-const gchar
+gchar
 *gtk_form_widget_entry_get_value_stringify (GtkFormWidget *fwidget)
 {
        GtkWidget *w = gtk_form_widget_get_widget (fwidget);
 
-       return gtk_entry_get_text (GTK_ENTRY (w));
+       return g_strdup (gtk_entry_get_text (GTK_ENTRY (w)));
 }
 
 /**
index b8990d73dc77b2cafd525af260b7addf117b3135..62f38b94f5572bd60da7f8111e71c37bb72c5425 100644 (file)
@@ -50,7 +50,7 @@ GType gtk_form_widget_entry_get_type (void) G_GNUC_CONST;
 
 GtkFormWidget *gtk_form_widget_entry_new (void);
 
-const gchar *gtk_form_widget_entry_get_value_stringify (GtkFormWidget *widget);
+gchar *gtk_form_widget_entry_get_value_stringify (GtkFormWidget *widget);
 
 gboolean gtk_form_widget_entry_set_value_stringify (GtkFormWidget *fwidget, const gchar *value);
 
index 87923d8d64c0162e971a199865fd089f7531771d..6f984fbdd1a0674a8b17452088e42ba173cff462 100644 (file)
@@ -83,12 +83,12 @@ GtkFormWidget
  * @widget:
  *
  */
-const gchar
+gchar
 *gtk_form_widget_label_get_value_stringify (GtkFormWidget *fwidget)
 {
        GtkWidget *w = gtk_form_widget_get_widget (fwidget);;
 
-       return gtk_label_get_text (GTK_LABEL (w));
+       return g_strdup (gtk_label_get_text (GTK_LABEL (w)));
 }
 
 /**
index eefa2d8d125a23d5a6ee4bb3f52c39b8a689a40a..42024a3c17972671e957bccc92fd0b0f2754fc88 100644 (file)
@@ -50,7 +50,7 @@ GType gtk_form_widget_label_get_type (void) G_GNUC_CONST;
 
 GtkFormWidget *gtk_form_widget_label_new (void);
 
-const gchar *gtk_form_widget_label_get_value_stringify (GtkFormWidget *widget);
+gchar *gtk_form_widget_label_get_value_stringify (GtkFormWidget *widget);
 
 gboolean gtk_form_widget_label_set_value_stringify (GtkFormWidget *fwidget, const gchar *value);
 
index b2042b778646f781a349a9e6429840321f59c379..42b594d61a90602ef1e1877a39e33ad3796fa76c 100644 (file)
@@ -86,15 +86,15 @@ GtkFormWidget
  * @widget: a #GtkFormWidget object.
  *
  */
-const gchar
+gchar
 *gtk_form_widget_spin_get_value_stringify (GtkFormWidget *fwidget)
 {
        GtkWidget *w;
        gchar *ret;
 
-       g_return_val_if_fail (IS_GTK_FORM_WIDGET_SPIN (fwidget), NULL);
+       ret = g_strdup ("");
 
-       ret = NULL;
+       g_return_val_if_fail (IS_GTK_FORM_WIDGET_SPIN (fwidget), ret);
 
        w = gtk_form_widget_get_widget (fwidget);
 
index 888d30ba5a7b96caadc55d3d42a8763760c71571..886350f8ab21d0c6f0433020741e092cd22af163 100644 (file)
@@ -50,7 +50,7 @@ GType gtk_form_widget_spin_get_type (void) G_GNUC_CONST;
 
 GtkFormWidget *gtk_form_widget_spin_new (void);
 
-const gchar *gtk_form_widget_spin_get_value_stringify (GtkFormWidget *widget);
+gchar *gtk_form_widget_spin_get_value_stringify (GtkFormWidget *widget);
 
 gboolean gtk_form_widget_spin_set_value_stringify (GtkFormWidget *fwidget, const gchar *value);
 
index 5c3f8962061004cfba57dfb28e253c34b4fdb866..23782195c1d0e0891544ecc021e561f32919035f 100644 (file)
@@ -84,7 +84,7 @@ GtkFormWidget
  * @widget: a #GtkFormWidget object.
  *
  */
-const gchar
+gchar
 *gtk_form_widget_textview_get_value_stringify (GtkFormWidget *fwidget)
 {
        gchar *ret = NULL;
index 9c27053528a6a8c7be4d158be5198692678d100f..dcadf36a4872c0fdb17576c6822ce070ab74be47 100644 (file)
@@ -50,7 +50,7 @@ GType gtk_form_widget_textview_get_type (void) G_GNUC_CONST;
 
 GtkFormWidget *gtk_form_widget_textview_new (void);
 
-const gchar *gtk_form_widget_textview_get_value_stringify (GtkFormWidget *widget);
+gchar *gtk_form_widget_textview_get_value_stringify (GtkFormWidget *widget);
 
 gboolean gtk_form_widget_textview_set_value_stringify (GtkFormWidget *fwidget, const gchar *value);
 
index 1d3b906331c3a2fa77bc42c00e68d6fe4bba6d21..8ba071fbb5132c66f70c0a71c55970715707c8ee 100644 (file)
Binary files a/test/database.db and b/test/database.db differ
index f191319c0353d460a6f110ad28b2ea6465e84478..bfe95cdcb3925307840445bdf9282e1987f9d84d 100644 (file)
@@ -72,6 +72,11 @@ on_btn_save_clicked (GtkButton *button,
 {
        gchar *sql;
 
+       if (!gtk_form_check (form, TRUE, NULL, TRUE, w, FALSE))
+               {
+                       return;
+               }
+
        if (current_id == 0)
                {
                        /* must find new id */
index 216dc379db8f9c5625d10754cadb746b2046a1ce..4765b94ee02134e5cab625a509723ad0f458d1ca 100644 (file)
@@ -12,6 +12,7 @@
       <object class="GtkVBox" id="vbox1">
         <property name="visible">True</property>
         <property name="border_width">3</property>
+        <property name="orientation">vertical</property>
         <child>
           <object class="GtkTable" id="table1">
             <property name="visible">True</property>
             <property name="layout_style">spread</property>
             <child>
               <object class="GtkButton" id="btn_new">
-                <property name="label" translatable="yes">gtk-new</property>
+                <property name="label">gtk-new</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
             </child>
             <child>
               <object class="GtkButton" id="btn_save">
-                <property name="label" translatable="yes">gtk-save</property>
+                <property name="label">gtk-save</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
             </child>
             <child>
               <object class="GtkButton" id="btn_delete">
-                <property name="label" translatable="yes">gtk-delete</property>
+                <property name="label">gtk-delete</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
             </child>
             <child>
               <object class="GtkButton" id="btn_open">
-                <property name="label" translatable="yes">gtk-open</property>
+                <property name="label">gtk-open</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
index 25f3e59747cdc813998be2169c01b40be847f755..3b0db423c0a852c30bb2527ee474e8b9f4bc672e 100644 (file)
@@ -4,42 +4,42 @@
 
        <table>customers</table>
 
-       <widget type="label" name="lbl_id">
+       <widget type="label" name="lbl_id" label="label1">
                <field type="integer" name="id">
                        <is-key>t</is-key>
                </field>
        </widget>
 
-       <widget type="entry" name="txt_name">
+       <widget type="entry" name="txt_name" label="label2">
                <field type="text" name="name">
                        <obligatory>TRUE</obligatory>
                </field>
        </widget>
 
-       <widget type="spin" name="spn_age">
+       <widget type="spin" name="spn_age" label="label4">
                <field type="integer" name="age">
                </field>
        </widget>
 
-       <widget type="combobox" name="cb_nation">
+       <widget type="combobox" name="cb_nation" label="label6">
                <column-field>0</column-field>
                <field type="integer" name="nation">
                        <default>3</default>
                </field>
        </widget>
 
-       <widget type="checkbox" name="chk_married">
+       <widget type="checkbox" name="chk_married" label="label9">
                <field type="boolean" name="married">
                </field>
        </widget>
 
-       <widget type="textview" name="txtv_description">
+       <widget type="textview" name="txtv_description" label="label10">
                <field type="text" name="description">
                        <default>It is...</default>
                </field>
        </widget>
 
-       <widget type="entry" name="txt_birthday">
+       <widget type="entry" name="txt_birthday" label="label11">
                <field type="datetime" name="birthday">
                        <display-format>%d/%m/%Y</display-format>
                </field>