From f15c096530985619ab43501eafa305dcce0da46c Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 10 Sep 2009 17:49:30 +0200 Subject: [PATCH] Added the function GtkFormFieldDateTime::get_now and a bug fix. --- src/fielddatetime.c | 22 ++++++++++++++++++++-- src/fielddatetime.h | 2 ++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/fielddatetime.c b/src/fielddatetime.c index 8f50faf..7b323ac 100644 --- a/src/fielddatetime.c +++ b/src/fielddatetime.c @@ -304,7 +304,7 @@ gtk_form_field_datetime_is_changed (GtkFormField *field) value = gtk_form_field_datetime_get_tm_from_str (gtk_form_field_datetime_get_value_stringify (field), priv->display_format); - if (value != NULL) + if (value != NULL && priv->original_value != NULL) { ret = (value->tm_year != priv->original_value->tm_year || value->tm_mon != priv->original_value->tm_mon @@ -313,7 +313,8 @@ gtk_form_field_datetime_is_changed (GtkFormField *field) || value->tm_min != priv->original_value->tm_min || value->tm_sec != priv->original_value->tm_sec); } - else if (value == NULL && priv->original_value != NULL) + else if ((value == NULL || priv->original_value == NULL) + && !(value == NULL && priv->original_value == NULL)) { ret = TRUE; } @@ -553,6 +554,23 @@ GDate return ret; } +/** + * gtk_form_field_datetime_get_now: + * + * Returns: a struct tm that represent the actual date and time. + */ +struct tm +*gtk_form_field_datetime_get_now (void) +{ + struct tm *ret; + time_t tt; + + tt = time (NULL); + ret = localtime (&tt); + + return ret; +} + /* PRIVATE */ static void gtk_form_field_datetime_set_property (GObject *object, diff --git a/src/fielddatetime.h b/src/fielddatetime.h index 7439447..f6a0f7a 100644 --- a/src/fielddatetime.h +++ b/src/fielddatetime.h @@ -77,6 +77,8 @@ gchar *gtk_form_field_datetime_get_str_from_tm (struct tm *datetime, const gchar GDate *gtk_form_field_datetime_get_gdate_from_tm (struct tm *datetime); +struct tm *gtk_form_field_datetime_get_now (void); + G_END_DECLS -- 2.49.0