From 7b3c6e37a83d1cbf2fc3883e804afe486f75ebac Mon Sep 17 00:00:00 2001 From: Javier Fernandez Garcia-Boente Date: Wed, 18 Apr 2007 16:11:19 +0000 Subject: [PATCH] * Changes in headers list rows layout: - set fixed width to Sent/Received date column - change font settings pmo-trunk-r1588 --- src/modest-runtime.c | 6 +-- src/widgets/modest-header-view-render.c | 61 +++++++++++++++++++++---------- src/widgets/modest-header-view.c | 9 ++++- 3 files changed, 52 insertions(+), 24 deletions(-) diff --git a/src/modest-runtime.c b/src/modest-runtime.c index 5b28b1a..386c5c2 100644 --- a/src/modest-runtime.c +++ b/src/modest-runtime.c @@ -79,7 +79,7 @@ static const FolderCols INBOX_COLUMNS_DETAILS[] = { static const FolderCols INBOX_COLUMNS_TWOLINES[] = { {MODEST_HEADER_VIEW_COLUMN_COMPACT_FLAG, 40}, {MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_IN, 180}, - {MODEST_HEADER_VIEW_COLUMN_RECEIVED_DATE, 60} + {MODEST_HEADER_VIEW_COLUMN_RECEIVED_DATE, 240} }; static const FolderCols OUTBOX_COLUMNS_DETAILS[] = { @@ -94,13 +94,13 @@ static const FolderCols OUTBOX_COLUMNS_DETAILS[] = { static const FolderCols OUTBOX_COLUMNS_TWOLINES[] = { {MODEST_HEADER_VIEW_COLUMN_COMPACT_FLAG, 40}, {MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_OUT,180}, - {MODEST_HEADER_VIEW_COLUMN_STATUS, 60} + {MODEST_HEADER_VIEW_COLUMN_STATUS, 240} }; static const FolderCols SENT_COLUMNS_TWOLINES[] = { {MODEST_HEADER_VIEW_COLUMN_COMPACT_FLAG, 40}, {MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_OUT,180}, - {MODEST_HEADER_VIEW_COLUMN_SENT_DATE, 60} + {MODEST_HEADER_VIEW_COLUMN_SENT_DATE, 240} }; #ifdef MODEST_PLATFORM_MAEMO diff --git a/src/widgets/modest-header-view-render.c b/src/widgets/modest-header-view-render.c index d1b22bb..2ae233a 100644 --- a/src/widgets/modest-header-view-render.c +++ b/src/widgets/modest-header-view-render.c @@ -36,6 +36,25 @@ #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) { @@ -66,7 +85,7 @@ get_pixbuf_for_flag (TnyHeaderFlags flag) } static GdkPixbuf* -get_pixbuf_for_compact_flag (TnyHeaderFlags flag) +get_pixbuf_for_compact_flag (TnyHeaderFlags flags) { /* optimization */ static GdkPixbuf *high_attachments_pixbuf = NULL; @@ -75,13 +94,13 @@ get_pixbuf_for_compact_flag (TnyHeaderFlags flag) static GdkPixbuf *high_pixbuf = NULL; static GdkPixbuf *low_pixbuf = NULL; - if (flag & TNY_HEADER_FLAG_ATTACHMENTS) { - if (flag & TNY_HEADER_FLAG_HIGH_PRIORITY) { + if (flags & TNY_HEADER_FLAG_ATTACHMENTS) { + if (flags & TNY_HEADER_FLAG_HIGH_PRIORITY) { 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 (flag & TNY_HEADER_FLAG_LOW_PRIORITY) { + else if (flags & TNY_HEADER_FLAG_LOW_PRIORITY) { if (G_UNLIKELY(!low_attachments_pixbuf)) low_attachments_pixbuf = modest_platform_get_icon (MODEST_HEADER_ICON_ATTACH_LOW_PRIORITY); return low_attachments_pixbuf; @@ -92,12 +111,12 @@ get_pixbuf_for_compact_flag (TnyHeaderFlags flag) return normal_attachments_pixbuf; } } - else if (flag & TNY_HEADER_FLAG_HIGH_PRIORITY) { + 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 (flag & TNY_HEADER_FLAG_LOW_PRIORITY) { + 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; @@ -161,7 +180,6 @@ _modest_header_view_compact_flag_cell_data (GtkTreeViewColumn *column, GtkCellRe gtk_tree_model_get (tree_model, iter, TNY_GTK_HEADER_LIST_MODEL_FLAGS_COLUMN, &flags, -1); - flags = TNY_HEADER_FLAG_ATTACHMENTS; if (flags & TNY_HEADER_FLAG_ATTACHMENTS) { if (flags & TNY_HEADER_FLAG_HIGH_PRIORITY) g_object_set (G_OBJECT (renderer), "pixbuf", @@ -266,7 +284,8 @@ _modest_header_view_compact_header_cell_data (GtkTreeViewColumn *column, GtkCe { GObject *rendobj; TnyHeaderFlags flags; - gchar *address, *subject, *header; + gchar *address, *subject, *header, *display_address; + gchar *parsed_address, *parsed_subject; time_t date; gboolean is_incoming; @@ -289,19 +308,22 @@ _modest_header_view_compact_header_cell_data (GtkTreeViewColumn *column, GtkCe -1); rendobj = G_OBJECT(renderer); - if (flags & TNY_HEADER_FLAG_SEEN) - header = g_strdup_printf ("%s\n%s", - subject, - modest_text_utils_get_display_address (address)); - else - header = g_strdup_printf ("%s\n%s", - subject, - modest_text_utils_get_display_address (address)); + + /* 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); g_free (address); g_free (subject); - - g_object_set (G_OBJECT(renderer), "markup", header, NULL); -/* set_common_flags (renderer, flags); */ + g_free(parsed_subject); + g_free(parsed_address); + + g_object_set (rendobj, "markup", header, NULL); + set_common_flags (renderer, flags); g_free (header); } @@ -351,3 +373,4 @@ _modest_header_view_status_cell_data (GtkTreeViewColumn *column, GtkCellRender g_free (status_str); } + diff --git a/src/widgets/modest-header-view.c b/src/widgets/modest-header-view.c index 0ad815f..fcda9d5 100644 --- a/src/widgets/modest-header-view.c +++ b/src/widgets/modest-header-view.c @@ -236,6 +236,9 @@ modest_header_view_set_columns (ModestHeaderView *self, const GList *columns) renderer_comptact_flag = gtk_cell_renderer_pixbuf_new (); renderer_compact_date = gtk_cell_renderer_text_new (); + g_object_set(G_OBJECT(renderer_header), + "ellipsize", PANGO_ELLIPSIZE_END, + NULL); g_object_set(G_OBJECT(renderer_compact_date), "xalign", 1.0, NULL); @@ -328,19 +331,21 @@ modest_header_view_set_columns (ModestHeaderView *self, const GList *columns) break; case MODEST_HEADER_VIEW_COLUMN_RECEIVED_DATE: - column = get_new_column (_("Received"), renderer_compact_date, TRUE, + column = get_new_column (_("Received"), renderer_compact_date, FALSE, TNY_GTK_HEADER_LIST_MODEL_DATE_RECEIVED_TIME_T_COLUMN, TRUE, (GtkTreeCellDataFunc)_modest_header_view_date_cell_data, GINT_TO_POINTER(TRUE)); + gtk_tree_view_column_set_fixed_width (column, 130); break; case MODEST_HEADER_VIEW_COLUMN_SENT_DATE: - column = get_new_column (_("Sent"), renderer_compact_date, TRUE, + column = get_new_column (_("Sent"), renderer_compact_date, FALSE, TNY_GTK_HEADER_LIST_MODEL_DATE_SENT_TIME_T_COLUMN, TRUE, (GtkTreeCellDataFunc)_modest_header_view_date_cell_data, GINT_TO_POINTER(FALSE)); + gtk_tree_view_column_set_fixed_width (column, 130); break; case MODEST_HEADER_VIEW_COLUMN_SIZE: -- 1.7.9.5