[gthumb/ext] validate date and time separately
- From: Paolo Bacchilega <paobac src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gthumb/ext] validate date and time separately
- Date: Mon, 26 Oct 2009 19:43:51 +0000 (UTC)
commit 6b815fb1f9dacce3bb0045d3955b11a6f5eea55f
Author: Paolo Bacchilega <paobac src gnome org>
Date: Mon Oct 26 20:43:00 2009 +0100
validate date and time separately
gthumb/gth-time-selector.c | 23 ++++++++++++++---------
gthumb/gth-time.c | 14 ++++++++------
gthumb/gth-time.h | 2 +-
3 files changed, 23 insertions(+), 16 deletions(-)
---
diff --git a/gthumb/gth-time-selector.c b/gthumb/gth-time-selector.c
index 7521200..0b385aa 100644
--- a/gthumb/gth-time-selector.c
+++ b/gthumb/gth-time-selector.c
@@ -187,24 +187,29 @@ update_date_from_view (GthTimeSelector *self)
static void
update_view_from_data (GthTimeSelector *self)
{
- GtkWidget *entry;
+ if (gth_time_valid (self->priv->date_time->time)) {
+ char *text;
+ GtkWidget *entry;
- if (gth_datetime_valid (self->priv->date_time)) {
- char *text;
-
- text = gth_datetime_strftime (self->priv->date_time, "%x");
- gtk_entry_set_text (GTK_ENTRY (self->priv->date_entry), text);
-
- entry = gtk_bin_get_child (GTK_BIN (self->priv->time_combo_box));
text = gth_datetime_strftime (self->priv->date_time, "%X");
+ entry = gtk_bin_get_child (GTK_BIN (self->priv->time_combo_box));
gtk_entry_set_text (GTK_ENTRY (entry), text);
}
else {
- gtk_entry_set_text (GTK_ENTRY (self->priv->date_entry), "");
+ GtkWidget *entry;
entry = gtk_bin_get_child (GTK_BIN (self->priv->time_combo_box));
gtk_entry_set_text (GTK_ENTRY (entry), "");
}
+
+ if (g_date_valid (self->priv->date_time->date)) {
+ char *text;
+
+ text = gth_datetime_strftime (self->priv->date_time, "%x");
+ gtk_entry_set_text (GTK_ENTRY (self->priv->date_entry), text);
+ }
+ else
+ gtk_entry_set_text (GTK_ENTRY (self->priv->date_entry), "");
}
diff --git a/gthumb/gth-time.c b/gthumb/gth-time.c
index f29ebce..7cb66f2 100644
--- a/gthumb/gth-time.c
+++ b/gthumb/gth-time.c
@@ -205,17 +205,19 @@ gth_datetime_from_exif_date (GthDateTime *dt,
}
-gboolean
+void
gth_datetime_from_struct_tm (GthDateTime *dt,
struct tm *tm)
{
- if (tm->tm_hour < 0) {
- gth_datetime_clear (dt);
- }
- else {
+ if (tm->tm_hour < 0)
+ gth_time_clear (dt->time);
+ else
gth_time_set_hms (dt->time, tm->tm_hour, tm->tm_min, tm->tm_sec, 0);
+
+ if (tm->tm_year < 0)
+ g_date_clear (dt->date, 1);
+ else
g_date_set_dmy (dt->date, tm->tm_mday, tm->tm_mon + 1, 1900 + tm->tm_year);
- }
}
diff --git a/gthumb/gth-time.h b/gthumb/gth-time.h
index 9370cdb..d5eaabe 100644
--- a/gthumb/gth-time.h
+++ b/gthumb/gth-time.h
@@ -55,7 +55,7 @@ void gth_datetime_clear (GthDateTime *dt);
gboolean gth_datetime_valid (GthDateTime *dt);
gboolean gth_datetime_from_exif_date (GthDateTime *dt,
const char *exif_date);
-gboolean gth_datetime_from_struct_tm (GthDateTime *dt,
+void gth_datetime_from_struct_tm (GthDateTime *dt,
struct tm *tm);
char * gth_datetime_to_exif_date (GthDateTime *dt);
void gth_datetime_to_struct_tm (GthDateTime *dt,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]