Added the function GtkFormFieldDateTime::get_now and a bug fix.
authorAndrea Zagli <azagli@libero.it>
Thu, 10 Sep 2009 15:49:30 +0000 (17:49 +0200)
committerAndrea Zagli <azagli@libero.it>
Thu, 10 Sep 2009 15:49:30 +0000 (17:49 +0200)
src/fielddatetime.c
src/fielddatetime.h

index 8f50faf74e97573c67dd81810923d700edc464e5..7b323acab5fb4c9baedd53f88d78e2235d4e918e 100644 (file)
@@ -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,
index 7439447f2efc7e12b8058e750f2eb926dafe57ab..f6a0f7a49a64dd36658a84fba1db0205358e22c1 100644 (file)
@@ -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