From 6285511fdabef9aa6e6e92dc6a16e2edf60efbba Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 30 Aug 2009 16:45:05 +0200 Subject: [PATCH] Bugfixes and adjustments. --- src/fieldboolean.c | 7 +++++-- src/fielddatetime.c | 16 ++++++++++++---- src/fieldfloat.c | 19 +++++++++++++++---- src/fieldinteger.c | 41 +++++++++++++++++++++++++++++------------ src/form.c | 9 ++++++++- src/widgetspin.c | 15 ++++++++++++--- 6 files changed, 81 insertions(+), 26 deletions(-) diff --git a/src/fieldboolean.c b/src/fieldboolean.c index 47777fb..7528bee 100644 --- a/src/fieldboolean.c +++ b/src/fieldboolean.c @@ -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) { diff --git a/src/fielddatetime.c b/src/fielddatetime.c index 993b476..5430671 100644 --- a/src/fielddatetime.c +++ b/src/fielddatetime.c @@ -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) diff --git a/src/fieldfloat.c b/src/fieldfloat.c index 654d6e0..20b4dd0 100644 --- a/src/fieldfloat.c +++ b/src/fieldfloat.c @@ -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; } diff --git a/src/fieldinteger.c b/src/fieldinteger.c index a68e8be..10e5dae 100644 --- a/src/fieldinteger.c +++ b/src/fieldinteger.c @@ -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; } diff --git a/src/form.c b/src/form.c index 865e86b..f6faca1 100644 --- a/src/form.c +++ b/src/form.c @@ -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); + } } } diff --git a/src/widgetspin.c b/src/widgetspin.c index 2055b07..b2042b7 100644 --- a/src/widgetspin.c +++ b/src/widgetspin.c @@ -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; } -- 2.49.0