update_format (ModestDatetimeFormatter *obj)
{
GConfClient *gconf;
- GError *error = NULL;
+ GError *err = NULL;
gboolean gconf_value;
ModestDatetimeFormatterPrivate *priv;
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;
}
#ifdef MODEST_TOOLKIT_HILDON2
GConfClient *gconf;
- GError *error = NULL;
+ GError *err = NULL;
gconf = gconf_client_get_default ();
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
#include <modest-tny-folder.h>
#include <modest-ui-constants.h>
#include <modest-icon-names.h>
+#include <modest-datetime-formatter.h>
#ifdef MODEST_TOOLKIT_HILDON2
#include <hildon/hildon-gtk.h>
#endif
TnyHeader *header;
TnyHeaderFlags priority_flags;
+
+ time_t date_to_show;
+ ModestDatetimeFormatter *datetime_formatter;
};
#define MODEST_COMPACT_MAIL_HEADER_VIEW_GET_PRIVATE(o) \
static void on_notify_style (GObject *obj, GParamSpec *spec, gpointer userdata);
static void on_details_button_clicked (GtkButton *button, gpointer userdata);
static void update_style (ModestCompactMailHeaderView *self);
-static void set_date_time (ModestCompactMailHeaderView *compact_mail_header, time_t date);
+static void set_date_time (ModestCompactMailHeaderView *compact_mail_header);
static void fill_address (ModestCompactMailHeaderView *self);
static void
-set_date_time (ModestCompactMailHeaderView *compact_mail_header, time_t date)
+set_date_time (ModestCompactMailHeaderView *compact_mail_header)
{
const guint BUF_SIZE = 64;
- gchar date_buf [BUF_SIZE];
+ const gchar *date_str;
+ gchar date_buf[BUF_SIZE];
GString *buffer = g_string_new ("");
ModestCompactMailHeaderViewPriv *priv = MODEST_COMPACT_MAIL_HEADER_VIEW_GET_PRIVATE (compact_mail_header);
- modest_text_utils_strftime (date_buf, BUF_SIZE, _HL("wdgt_va_week"), date);
- buffer = g_string_append (buffer, date_buf);
+ date_str = modest_datetime_formatter_format_date (priv->datetime_formatter, priv->date_to_show);
+ buffer = g_string_append (buffer, date_str);
buffer = g_string_append_c (buffer, ' ');
buffer = g_string_append_unichar (buffer, 0x2015);
buffer = g_string_append_c (buffer, ' ');
/* TODO: 24h/12h */
- modest_text_utils_strftime (date_buf, BUF_SIZE, _HL("wdgt_va_24h_time"), date);
- buffer = g_string_append (buffer, date_buf);
+ date_str = modest_datetime_formatter_format_time (priv->datetime_formatter, priv->date_to_show);
+ buffer = g_string_append (buffer, date_str);
buffer = g_string_append (buffer, "\n");
- modest_text_utils_strftime (date_buf, BUF_SIZE, _HL("wdgt_va_date_long"), date);
+ modest_text_utils_strftime (date_buf, BUF_SIZE, _HL("wdgt_va_date_long"), priv->date_to_show);
buffer = g_string_append (buffer, date_buf);
gtk_label_set_text (GTK_LABEL (priv->date_label), buffer->str);
if (header && G_IS_OBJECT (header))
{
gchar *subject;
- time_t date_to_show;
g_object_ref (G_OBJECT (header));
priv->header = header;
gtk_label_set_text (GTK_LABEL (priv->subject_label), _("mail_va_no_subject"));
if (priv->is_outgoing && priv->is_draft) {
- date_to_show = tny_header_get_date_sent (header);
+ priv->date_to_show = tny_header_get_date_sent (header);
} else {
- date_to_show = tny_header_get_date_received (header);
+ priv->date_to_show = tny_header_get_date_received (header);
}
- set_date_time (MODEST_COMPACT_MAIL_HEADER_VIEW (self), date_to_show);
+ set_date_time (MODEST_COMPACT_MAIL_HEADER_VIEW (self));
fill_address (MODEST_COMPACT_MAIL_HEADER_VIEW (self));
}
static void
+datetime_format_changed (ModestDatetimeFormatter *formatter,
+ ModestCompactMailHeaderView *self)
+{
+ set_date_time (self);
+}
+
+static void
modest_compact_mail_header_view_instance_init (GTypeInstance *instance, gpointer g_class)
{
ModestCompactMailHeaderView *self = (ModestCompactMailHeaderView *)instance;
g_signal_connect (G_OBJECT (details_button), "clicked", G_CALLBACK (on_details_button_clicked), instance);
+ priv->datetime_formatter = modest_datetime_formatter_new ();
+ g_signal_connect (G_OBJECT (priv->datetime_formatter), "format-changed",
+ G_CALLBACK (datetime_format_changed), (gpointer) self);
+
priv->headers_vbox = gtk_vbox_new (FALSE, 0);
gtk_container_set_focus_chain (GTK_CONTAINER (priv->headers_vbox), NULL);
g_object_ref (priv->headers_vbox);
ModestCompactMailHeaderView *self = (ModestCompactMailHeaderView *)object;
ModestCompactMailHeaderViewPriv *priv = MODEST_COMPACT_MAIL_HEADER_VIEW_GET_PRIVATE (self);
+ if (priv->datetime_formatter) {
+ g_object_unref (priv->datetime_formatter);
+ priv->datetime_formatter = NULL;
+ }
+
if (priv->custom_labels) {
g_slist_free (priv->custom_labels);
priv->custom_labels = NULL;