X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-header-view-render.c;h=8242061a6c46dd211fcb9849ad5bff4b602fd0b8;hp=4b14de3cf97b46421b76777a8e8950cd067756cc;hb=c5637dfb0beccca9e090c874336a387277433ab6;hpb=5f14f32924c1e8f4aa67de372f45d58bb82220c1 diff --git a/src/widgets/modest-header-view-render.c b/src/widgets/modest-header-view-render.c index 4b14de3..8242061 100644 --- a/src/widgets/modest-header-view-render.c +++ b/src/widgets/modest-header-view-render.c @@ -35,26 +35,6 @@ #include #include - -static gchar * -_pango_parse_string (const gchar *string) { - gchar **tmp = NULL; - gchar *parsed_string = NULL; - gchar *tmp_string = NULL; - guint i = 0; - - tmp = g_strsplit(string, "&", 0); - parsed_string = g_strdup(tmp[i]); - for (i = 1; tmp[i] != NULL; i++) { - tmp_string = g_strconcat (parsed_string, "&", tmp[i], NULL); - g_free(parsed_string); - parsed_string = g_strdup(tmp_string); - } - - return parsed_string; -} - - static GdkPixbuf* get_pixbuf_for_flag (TnyHeaderFlags flag) { @@ -93,36 +73,40 @@ get_pixbuf_for_compact_flag (TnyHeaderFlags flags) static GdkPixbuf *low_attachments_pixbuf = NULL; static GdkPixbuf *high_pixbuf = NULL; static GdkPixbuf *low_pixbuf = NULL; - - if (flags & TNY_HEADER_FLAG_ATTACHMENTS) { - if (flags & TNY_HEADER_FLAG_HIGH_PRIORITY) { + TnyHeaderFlags prior; + + prior = flags & TNY_HEADER_FLAG_HIGH_PRIORITY; + switch (prior) { + case TNY_HEADER_FLAG_HIGH_PRIORITY: + if (flags & TNY_HEADER_FLAG_ATTACHMENTS) { if (G_UNLIKELY(!high_attachments_pixbuf)) high_attachments_pixbuf = modest_platform_get_icon (MODEST_HEADER_ICON_ATTACH_HIGH_PRIORITY); return high_attachments_pixbuf; + } else { + if (G_UNLIKELY(!high_pixbuf)) + high_pixbuf = modest_platform_get_icon (MODEST_HEADER_ICON_HIGH_PRIORITY); + return high_pixbuf; } - else if (flags & TNY_HEADER_FLAG_LOW_PRIORITY) { + break; + case TNY_HEADER_FLAG_LOW_PRIORITY: + if (flags & TNY_HEADER_FLAG_ATTACHMENTS) { if (G_UNLIKELY(!low_attachments_pixbuf)) low_attachments_pixbuf = modest_platform_get_icon (MODEST_HEADER_ICON_ATTACH_LOW_PRIORITY); return low_attachments_pixbuf; + } else { + if (G_UNLIKELY(!low_pixbuf)) + low_pixbuf = modest_platform_get_icon (MODEST_HEADER_ICON_LOW_PRIORITY); + return low_pixbuf; } - else { + break; + default: + if (flags & TNY_HEADER_FLAG_ATTACHMENTS) { if (G_UNLIKELY(!normal_attachments_pixbuf)) normal_attachments_pixbuf = modest_platform_get_icon (MODEST_HEADER_ICON_ATTACH_NORM_PRIORITY); return normal_attachments_pixbuf; - } - } - else if (flags & TNY_HEADER_FLAG_HIGH_PRIORITY) { - if (G_UNLIKELY(!high_pixbuf)) - high_pixbuf = modest_platform_get_icon (MODEST_HEADER_ICON_HIGH_PRIORITY); - return high_pixbuf; - } - else if (flags & TNY_HEADER_FLAG_LOW_PRIORITY) { - if (G_UNLIKELY(!low_pixbuf)) - low_pixbuf = modest_platform_get_icon (MODEST_HEADER_ICON_LOW_PRIORITY); - return low_pixbuf; + } } - return NULL; } @@ -176,34 +160,13 @@ _modest_header_view_compact_flag_cell_data (GtkTreeViewColumn *column, GtkCellRe GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer user_data) { TnyHeaderFlags flags; + GdkPixbuf* pixbuf = NULL; gtk_tree_model_get (tree_model, iter, TNY_GTK_HEADER_LIST_MODEL_FLAGS_COLUMN, &flags, -1); - - if (flags & TNY_HEADER_FLAG_ATTACHMENTS) { - if (flags & TNY_HEADER_FLAG_HIGH_PRIORITY) - g_object_set (G_OBJECT (renderer), "pixbuf", - get_pixbuf_for_compact_flag (flags), - NULL); - else if (flags & TNY_HEADER_FLAG_LOW_PRIORITY) - g_object_set (G_OBJECT (renderer), "pixbuf", - get_pixbuf_for_compact_flag (flags), - NULL); - else - g_object_set (G_OBJECT (renderer), "pixbuf", - get_pixbuf_for_compact_flag (flags), - NULL); - } - else { - if (flags & TNY_HEADER_FLAG_HIGH_PRIORITY) - g_object_set (G_OBJECT (renderer), "pixbuf", - get_pixbuf_for_compact_flag (flags), - NULL); - else if (flags & TNY_HEADER_FLAG_LOW_PRIORITY) - g_object_set (G_OBJECT (renderer), "pixbuf", - get_pixbuf_for_compact_flag (flags), - NULL); - } + + pixbuf = get_pixbuf_for_compact_flag (flags); + g_object_set (G_OBJECT (renderer), "pixbuf", pixbuf, NULL); } void @@ -225,6 +188,33 @@ _modest_header_view_date_cell_data (GtkTreeViewColumn *column, GtkCellRenderer { TnyHeaderFlags flags; guint date, date_col; + gchar *display_date = NULL; + gboolean received = GPOINTER_TO_INT(user_data); + + if (received) + date_col = TNY_GTK_HEADER_LIST_MODEL_DATE_RECEIVED_TIME_T_COLUMN; + else + date_col = TNY_GTK_HEADER_LIST_MODEL_DATE_SENT_TIME_T_COLUMN; + + gtk_tree_model_get (tree_model, iter, + TNY_GTK_HEADER_LIST_MODEL_FLAGS_COLUMN, &flags, + date_col, &date, + -1); + + display_date = modest_text_utils_get_display_date (date); + g_object_set (G_OBJECT(renderer), "text", display_date, NULL); + + set_common_flags (renderer, flags); + g_free (display_date); +} + +void +_modest_header_view_compact_date_cell_data (GtkTreeViewColumn *column, GtkCellRenderer *renderer, + GtkTreeModel *tree_model, GtkTreeIter *iter, + gpointer user_data) +{ + TnyHeaderFlags flags; + guint date, date_col; gchar *display_date = NULL, *tmp_date = NULL; gboolean received = GPOINTER_TO_INT(user_data); @@ -240,14 +230,15 @@ _modest_header_view_date_cell_data (GtkTreeViewColumn *column, GtkCellRenderer tmp_date = modest_text_utils_get_display_date (date); display_date = g_strdup_printf ("\n%s", tmp_date); - g_object_set (G_OBJECT(renderer), "markup", display_date, NULL); + g_object_set (G_OBJECT(renderer), + "markup", display_date, + NULL); set_common_flags (renderer, flags); g_free (tmp_date); g_free (display_date); } - void _modest_header_view_sender_receiver_cell_data (GtkTreeViewColumn *column, GtkCellRenderer *renderer, GtkTreeModel *tree_model, GtkTreeIter *iter, gboolean is_sender) @@ -284,8 +275,7 @@ _modest_header_view_compact_header_cell_data (GtkTreeViewColumn *column, GtkCe { GObject *rendobj; TnyHeaderFlags flags; - gchar *address, *subject, *header, *display_address; - gchar *parsed_address, *parsed_subject; + gchar *address, *subject, *header; time_t date; gboolean is_incoming; @@ -306,25 +296,13 @@ _modest_header_view_compact_header_cell_data (GtkTreeViewColumn *column, GtkCe TNY_GTK_HEADER_LIST_MODEL_SUBJECT_COLUMN, &subject, TNY_GTK_HEADER_LIST_MODEL_DATE_SENT_TIME_T_COLUMN, &date, -1); - - rendobj = G_OBJECT(renderer); - /* deal with empty subjects */ - if (!subject) - subject = g_strdup (_("mail_va_no_subject")); - - /* Escape special characteres to allow pango makup`*/ - display_address = modest_text_utils_get_display_address (address); - parsed_address = _pango_parse_string (display_address); - parsed_subject = _pango_parse_string (subject); - - header = g_strdup_printf ("%s\n%s", - parsed_subject, - parsed_address); + rendobj = G_OBJECT(renderer); + header = g_markup_printf_escaped ("%s\n%s", + subject ? subject : _("mail_va_no_subject"), + address); g_free (address); g_free (subject); - g_free(parsed_subject); - g_free(parsed_address); g_object_set (rendobj, "markup", header, NULL); set_common_flags (renderer, flags); @@ -361,15 +339,14 @@ _modest_header_view_status_cell_data (GtkTreeViewColumn *column, GtkCellRender gpointer user_data) { TnyHeaderFlags flags; - guint status; + //guint status; gchar *status_str; gtk_tree_model_get (tree_model, iter, - TNY_GTK_HEADER_LIST_MODEL_FLAGS_COLUMN, &flags, - TNY_GTK_HEADER_LIST_MODEL_MESSAGE_SIZE_COLUMN, &status, + TNY_GTK_HEADER_LIST_MODEL_FLAGS_COLUMN, &flags, + // TNY_GTK_HEADER_LIST_MODEL_MESSAGE_SIZE_COLUMN, &status, -1); -/* size_str = modest_text_utils_get_display_size (size); */ status_str = g_strdup(_("mcen_li_outbox_waiting")); g_object_set (G_OBJECT(renderer), "text", status_str, NULL);