X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-datetime-formatter.c;h=7aa9b24f96b2626cc473986a8166e6f4430d3dac;hp=2a4e73b6d6e889d3b92e790e93cfe83f35562d40;hb=b6a6134ec1da8ab60641a6dabb515561521ea23e;hpb=b5e373ee749933b4fbe6d7af110d990f238c9924 diff --git a/src/modest-datetime-formatter.c b/src/modest-datetime-formatter.c index 2a4e73b..7aa9b24 100644 --- a/src/modest-datetime-formatter.c +++ b/src/modest-datetime-formatter.c @@ -31,10 +31,10 @@ #include #ifdef MODEST_TOOLKIT_HILDON2 #include -#include -#include #include #endif +#include +#include "modest-text-utils.h" typedef enum { DATETIME_FORMAT_12H, @@ -42,7 +42,8 @@ typedef enum { DATETIME_FORMAT_LOCALE, } DatetimeFormat; -#define HILDON2_GCONF_FORMAT_KEY "/apps/clock/time-format" +#define HILDON2_GCONF_FORMAT_DIR "/apps/clock" +#define HILDON2_GCONF_FORMAT_KEY HILDON2_GCONF_FORMAT_DIR "/time-format" /* 'private'/'protected' functions */ static void modest_datetime_formatter_class_init (ModestDatetimeFormatterClass *klass); @@ -115,7 +116,7 @@ modest_datetime_formatter_class_init (ModestDatetimeFormatterClass *klass) G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (ModestDatetimeFormatterClass, format_changed), NULL, NULL, - gtk_marshal_VOID__VOID, + g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } @@ -124,7 +125,7 @@ static void update_format (ModestDatetimeFormatter *obj) { GConfClient *gconf; - GError *error = NULL; + GError *err = NULL; gboolean gconf_value; ModestDatetimeFormatterPrivate *priv; @@ -132,11 +133,11 @@ update_format (ModestDatetimeFormatter *obj) gconf = gconf_client_get_default (); gconf_value = gconf_client_get_bool (gconf, HILDON2_GCONF_FORMAT_KEY, - &error); + &err); - if (error != NULL) { - g_warning ("Error reading time format in gconf %s", error->message); - g_error_free (error); + if (err != NULL) { + g_warning ("Error reading time format in gconf %s", err->message); + g_error_free (err); } else { priv->current_format = gconf_value?DATETIME_FORMAT_24H:DATETIME_FORMAT_12H; } @@ -166,16 +167,19 @@ init_format (ModestDatetimeFormatter *obj) #ifdef MODEST_TOOLKIT_HILDON2 GConfClient *gconf; - GError *error = NULL; + GError *err = NULL; gconf = gconf_client_get_default (); + gconf_client_add_dir (gconf, HILDON2_GCONF_FORMAT_DIR, + GCONF_CLIENT_PRELOAD_ONELEVEL, + &err); priv->gconf_handler = gconf_client_notify_add (gconf, HILDON2_GCONF_FORMAT_KEY, clock_format_changed, (gpointer) obj, - NULL, &error); + NULL, &err); - if (error != NULL) { - g_warning ("Error listening to time format in gconf %s", error->message); - g_error_free (error); + if (err != NULL) { + g_warning ("Error listening to time format in gconf %s", err->message); + g_error_free (err); } update_format (obj); #endif @@ -196,11 +200,15 @@ modest_datetime_formatter_finalize (GObject *obj) { #ifdef MODEST_TOOLKIT_HILDON2 ModestDatetimeFormatterPrivate *priv; + GConfClient *gconf; priv = MODEST_DATETIME_FORMATTER_GET_PRIVATE (obj); - gconf_client_notify_remove (gconf_client_get_default (), + gconf = gconf_client_get_default (); + gconf_client_notify_remove (gconf, priv->gconf_handler); priv->gconf_handler = 0; + gconf_client_remove_dir (gconf, HILDON2_GCONF_FORMAT_DIR, + NULL); #endif G_OBJECT_CLASS (parent_class)->finalize (obj); } @@ -256,7 +264,7 @@ modest_datetime_formatter_format_time (ModestDatetimeFormatter *self, switch (priv->current_format) { case DATETIME_FORMAT_12H: - format_string = is_pm?_HL("wdgt_12h_time_pm"):_HL("wdgt_12h_time_am"); + format_string = is_pm?_HL("wdgt_va_12h_time_pm"):_HL("wdgt_va_12h_time_am"); break; case DATETIME_FORMAT_24H: format_string = _HL("wdgt_va_24h_time"); @@ -271,6 +279,22 @@ modest_datetime_formatter_format_time (ModestDatetimeFormatter *self, } const gchar * +modest_datetime_formatter_display_long_datetime (ModestDatetimeFormatter *self, + time_t date) +{ + +#define DATE_BUF_DOUBLE_SIZE 128 + + static gchar date_buf[DATE_BUF_DOUBLE_SIZE]; + + snprintf (date_buf, DATE_BUF_DOUBLE_SIZE, + "%s %s", modest_datetime_formatter_format_date (self, date), + modest_datetime_formatter_format_time (self, date)); + + return date_buf; +} + +const gchar * modest_datetime_formatter_display_datetime (ModestDatetimeFormatter *self, time_t date) {