Bugfixes and adjustments.
authorAndrea Zagli <azagli@libero.it>
Sun, 30 Aug 2009 14:45:05 +0000 (16:45 +0200)
committerAndrea Zagli <azagli@libero.it>
Sun, 30 Aug 2009 14:45:05 +0000 (16:45 +0200)
src/fieldboolean.c
src/fielddatetime.c
src/fieldfloat.c
src/fieldinteger.c
src/form.c
src/widgetspin.c

index 47777fb9fb6e23cec4b408e3fc61f7a1592b8368..7528beeebb57aa7e6ed34f6150e9f0ea90fea659 100644 (file)
@@ -155,11 +155,14 @@ const GValue
 const gchar
 *gtk_form_field_boolean_get_value_sql (GtkFormField *field)
 {
-       const gchar *ret = NULL;
+       const gchar *ret;
+       const gchar *value;
 
        g_return_val_if_fail (IS_GTK_FORM_FIELD_BOOLEAN (field), NULL);
 
-       const gchar *value = gtk_form_field_boolean_get_value_stringify (field);
+       ret = NULL;
+
+       value = gtk_form_field_boolean_get_value_stringify (field);
 
        if (value != NULL)
                {
index 993b4767fd8b961b743af157f9d638efe191d4ff..5430671b4a6a47d80f90aafc3185815034d005b6 100644 (file)
@@ -118,10 +118,14 @@ GtkFormField
 const gchar
 *gtk_form_field_datetime_get_value_stringify (GtkFormField *field)
 {
-       const gchar *ret = NULL;
+       const gchar *ret;
 
        GtkFormWidget *fw;
 
+       g_return_val_if_fail (IS_GTK_FORM_FIELD_DATETIME (field), NULL);
+
+       ret = NULL;
+
        g_object_get (field,
                      "form-widget", &fw,
                      NULL);
@@ -143,13 +147,17 @@ const GValue
 *gtk_form_field_datetime_get_value (GtkFormField *field)
 {
        struct tm *datetime;
-       GValue *ret = NULL;
+       GValue *ret;
+       const gchar *format;
+       const gchar *value;
 
        g_return_val_if_fail (IS_GTK_FORM_FIELD_DATETIME (field), NULL);
 
-       const gchar *format = gtk_form_field_get_str_format (field);
+       ret = NULL;
 
-       const gchar *value = gtk_form_field_datetime_get_value_stringify (field);
+       format = gtk_form_field_get_str_format (field);
+
+       value = gtk_form_field_datetime_get_value_stringify (field);
 
        datetime = gtk_form_field_datetime_get_tm_from_str (value);
        if (value != NULL && datetime != NULL)
index 654d6e0e0492015bfe3c7c6242a7827b446f1be2..20b4dd060bcb2d018a44fb590a3deabb10bdb3a3 100644 (file)
@@ -104,17 +104,28 @@ GtkFormField
 const gchar
 *gtk_form_field_float_get_value_stringify (GtkFormField *field)
 {
-       const gchar *ret = NULL;
+       const gchar *ret;
 
        GtkFormWidget *fw;
-               
+
+       g_return_val_if_fail (IS_GTK_FORM_FIELD_FLOAT (field), NULL);
+
+       ret = NULL;
+
        g_object_get (field,
                      "form-widget", &fw,
                      NULL);
 
        if (IS_GTK_FORM_WIDGET (fw))
                {
-                       ret = g_strdup_printf ("%f", strtod (gtk_form_widget_get_value_stringify (fw), NULL));
+                       const gchar *value;
+
+                       value = gtk_form_widget_get_value_stringify (fw);
+
+                       if (value != NULL)
+                               {
+                                       ret = g_strdup_printf ("%f", strtod (value, NULL));
+                               }
                }
 
        return ret;
@@ -202,7 +213,7 @@ gtk_form_field_float_is_empty (GtkFormField *field)
 
        value = gtk_form_field_float_get_value_stringify (field);
 
-       if (g_strtod (value, NULL) == 0.0f)
+       if (value != NULL && g_strtod (value, NULL) == 0.0f)
                {
                        ret = TRUE;
                }
index a68e8be366becae19d908249c38468bd85c4cb39..10e5dae0e5e1f313340e6245eded88922af213c8 100644 (file)
@@ -102,17 +102,26 @@ GtkFormField
 const gchar
 *gtk_form_field_integer_get_value_stringify (GtkFormField *field)
 {
-       const gchar *ret = NULL;
+       const gchar *ret;
 
        GtkFormWidget *fw;
-               
+
+       ret = NULL;
+
        g_object_get (field,
                      "form-widget", &fw,
                      NULL);
 
        if (IS_GTK_FORM_WIDGET (fw))
                {
-                       ret = g_strdup_printf ("%d", strtol (gtk_form_widget_get_value_stringify (fw), NULL, 10));
+                       const gchar *value;
+
+                       value = gtk_form_widget_get_value_stringify (fw);
+
+                       if (value != NULL)
+                               {
+                                       ret = g_strdup_printf ("%d", strtol (value, NULL, 10));
+                               }
                }
 
        return ret;
@@ -126,9 +135,14 @@ const gchar
 const GValue
 *gtk_form_field_integer_get_value (GtkFormField *field)
 {
-       GValue *ret = NULL;
+       GValue *ret;
+       const gchar *value;
+
+       g_return_val_if_fail (IS_GTK_FORM_FIELD_INTEGER (field), NULL);
 
-       const gchar *value = gtk_form_field_integer_get_value_stringify (field);
+       ret = NULL;
+
+       value = gtk_form_field_integer_get_value_stringify (field);
 
        if (value != NULL)
                {
@@ -148,13 +162,16 @@ const GValue
 const gchar
 *gtk_form_field_integer_get_value_sql (GtkFormField *field)
 {
-       const gchar *ret = NULL;
-       const gchar *value = gtk_form_field_integer_get_value_stringify (field);
+       const gchar *ret;
+       const gchar *value;
 
-       if (value != NULL)
-               {
-                       ret = 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;
 
        return ret;
 }
@@ -193,7 +210,7 @@ gtk_form_field_integer_is_empty (GtkFormField *field)
 
        value = gtk_form_field_integer_get_value_stringify (field);
 
-       if (strtol (value, NULL, 10) == 0)
+       if (value != NULL && strtol (value, NULL, 10) == 0)
                {
                        ret = TRUE;
                }
index 865e86bfd4026a1fba632b34803d1514b543a7e9..f6faca15c2d28fcccca10542e3d1a095c3f17327 100644 (file)
@@ -252,7 +252,14 @@ GtkForm
                                                                                                                {
                                                                                                                        GtkLabel *wlabel;
                                                                                                                        wlabel = GTK_LABEL (gtk_builder_get_object (priv->gtkbuilder, label));
-                                                                                                                       gtk_form_widget_set_label (widget, wlabel);
+                                                                                                                       if (GTK_IS_LABEL (wlabel))
+                                                                                                                               {
+                                                                                                                                       gtk_form_widget_set_label (widget, wlabel);
+                                                                                                                               }
+                                                                                                                       else
+                                                                                                                               {
+                                                                                                                                       g_warning ("Label «%s» not found.", label);
+                                                                                                                               }
                                                                                                                }
                                                                                                }
 
index 2055b076200d246f30ec8589a024f430481bb915..b2042b778646f781a349a9e6429840321f59c379 100644 (file)
@@ -89,10 +89,19 @@ GtkFormWidget
 const gchar
 *gtk_form_widget_spin_get_value_stringify (GtkFormWidget *fwidget)
 {
-       GtkWidget *w = gtk_form_widget_get_widget (fwidget);
-       gchar *ret = NULL;
+       GtkWidget *w;
+       gchar *ret;
+
+       g_return_val_if_fail (IS_GTK_FORM_WIDGET_SPIN (fwidget), NULL);
+
+       ret = NULL;
 
-       ret = g_strdup_printf ("%f", gtk_spin_button_get_value (GTK_SPIN_BUTTON (w)));
+       w = gtk_form_widget_get_widget (fwidget);
+
+       if (w != NULL)
+               {
+                       ret = g_strdup_printf ("%f", gtk_spin_button_get_value (GTK_SPIN_BUTTON (w)));
+               }
 
        return ret;
 }