struct _ModestCompactMailHeaderViewPriv
{
GtkWidget *headers_vbox;
- GtkWidget *subject_box;
GtkWidget *fromto_label;
GtkWidget *fromto_contents;
- GtkWidget *priority_icon;
- GtkWidget *details_label;
- GtkWidget *details_button;
GtkWidget *date_label;
- GtkWidget *subject_label;
GSList *custom_labels;
/* internal */
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);
static void fill_address (ModestCompactMailHeaderView *self);
subject = tny_header_dup_subject (header);
- if (subject && (subject[0] != '\0'))
- gtk_label_set_text (GTK_LABEL (priv->subject_label), subject);
- else
- gtk_label_set_text (GTK_LABEL (priv->subject_label), _("mail_va_no_subject"));
-
if (priv->is_outgoing && priv->is_draft) {
priv->date_to_show = tny_header_get_date_sent (header);
} else {
{
ModestCompactMailHeaderView *self = (ModestCompactMailHeaderView *)instance;
ModestCompactMailHeaderViewPriv *priv = MODEST_COMPACT_MAIL_HEADER_VIEW_GET_PRIVATE (self);
- GtkWidget *first_hbox, *second_hbox, *vbox, *main_vbox;
- PangoAttrList *attr_list;
+ GtkWidget *from_date_hbox, *vbox, *main_vbox;
GtkWidget *main_align;
priv->header = NULL;
main_vbox = gtk_vbox_new (FALSE, 0);
vbox = gtk_vbox_new (FALSE, 0);
- first_hbox = gtk_hbox_new (FALSE, MODEST_MARGIN_HALF);
-
- priv->subject_box = gtk_hbox_new (FALSE, MODEST_MARGIN_HALF);
/* We set here the style for widgets using standard text color. For
* widgets with secondary text color, we set them in update_style,
* as we want to track the style changes and update the color properly */
- priv->subject_label = gtk_label_new (NULL);
- gtk_misc_set_alignment (GTK_MISC (priv->subject_label), 0.0, 1.0);
- gtk_label_set_ellipsize (GTK_LABEL (priv->subject_label), PANGO_ELLIPSIZE_NONE);
- attr_list = pango_attr_list_new ();
- pango_attr_list_insert (attr_list, pango_attr_scale_new (PANGO_SCALE_LARGE));
- gtk_label_set_attributes (GTK_LABEL (priv->subject_label), attr_list);
- pango_attr_list_unref (attr_list);
-
- priv->details_button = gtk_button_new ();
- gtk_widget_set_no_show_all (priv->details_button, TRUE);
- gtk_widget_show (priv->details_button);
- priv->details_label = gtk_label_new (_("mcen_ti_message_properties"));
- gtk_widget_show (priv->details_label);
- gtk_misc_set_alignment (GTK_MISC (priv->details_label), 1.0, 0.5);
- gtk_container_add (GTK_CONTAINER (priv->details_button), priv->details_label);
- gtk_button_set_relief (GTK_BUTTON (priv->details_button), GTK_RELIEF_NONE);
- gtk_widget_set_size_request (priv->details_button, 200, -1);
-
- gtk_box_pack_end (GTK_BOX (priv->subject_box), priv->subject_label, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (first_hbox), priv->subject_box, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (first_hbox), priv->details_button, FALSE, FALSE, 0);
-
- second_hbox = gtk_hbox_new (FALSE, MODEST_MARGIN_DOUBLE);
+ from_date_hbox = gtk_hbox_new (FALSE, MODEST_MARGIN_DOUBLE);
priv->fromto_label = gtk_label_new (NULL);
gtk_misc_set_alignment (GTK_MISC (priv->fromto_label), 0.0, 1.0);
gtk_misc_set_alignment (GTK_MISC (priv->date_label), 1.0, 1.0);
gtk_misc_set_padding (GTK_MISC (priv->date_label), MODEST_MARGIN_DOUBLE, 0);
- gtk_box_pack_start (GTK_BOX (second_hbox), priv->fromto_label, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (second_hbox), priv->fromto_contents, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (second_hbox), priv->date_label, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (from_date_hbox), priv->fromto_label, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (from_date_hbox), priv->fromto_contents, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (from_date_hbox), priv->date_label, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), first_hbox, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), second_hbox, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox), from_date_hbox, FALSE, FALSE, 0);
update_style (self);
g_signal_connect (G_OBJECT (self), "notify::style", G_CALLBACK (on_notify_style), (gpointer) self);
- g_signal_connect (G_OBJECT (priv->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 = MODEST_COMPACT_MAIL_HEADER_VIEW_GET_PRIVATE (headers_view);
priv->priority_flags = flags & TNY_HEADER_FLAG_PRIORITY_MASK ;
-
- if (priv->priority_flags == TNY_HEADER_FLAG_NORMAL_PRIORITY) {
- if (priv->priority_icon != NULL) {
- gtk_widget_destroy (priv->priority_icon);
- priv->priority_icon = NULL;
- }
- } else if (priv->priority_flags == TNY_HEADER_FLAG_HIGH_PRIORITY) {
- priv->priority_icon = gtk_image_new_from_icon_name (MODEST_HEADER_ICON_HIGH, GTK_ICON_SIZE_MENU);
- gtk_box_pack_start (GTK_BOX (priv->subject_box), priv->priority_icon, FALSE, FALSE, 0);
- gtk_widget_show (priv->priority_icon);
- } else if (priv->priority_flags == TNY_HEADER_FLAG_LOW_PRIORITY) {
- priv->priority_icon = gtk_image_new_from_icon_name (MODEST_HEADER_ICON_LOW, GTK_ICON_SIZE_MENU);
- gtk_box_pack_start (GTK_BOX (priv->subject_box), priv->priority_icon, FALSE, FALSE, 0);
- gtk_widget_show (priv->priority_icon);
- }
}
static gboolean
priv = MODEST_COMPACT_MAIL_HEADER_VIEW_GET_PRIVATE (headers_view);
priv->is_loading = is_loading;
- gtk_widget_set_sensitive (priv->details_button, !is_loading);
- if (is_loading) {
- gtk_widget_hide (priv->details_label);
- } else {
- gtk_widget_show (priv->details_label);
- }
}
static void
gtk_label_set_attributes (GTK_LABEL (priv->fromto_label), attr_list);
pango_attr_list_unref (attr_list);
- /* style of details label in details button */
- attr_list = pango_attr_list_new ();
- pango_attr_list_insert (attr_list, pango_attr_foreground_new (color.red, color.green, color.blue));
- pango_attr_list_insert (attr_list, pango_attr_scale_new (PANGO_SCALE_SMALL));
- pango_attr_list_insert (attr_list, pango_attr_underline_new (PANGO_UNDERLINE_SINGLE));
- gtk_label_set_attributes (GTK_LABEL (priv->details_label), attr_list);
- pango_attr_list_unref (attr_list);
-
/* style of date time label */
attr_list = pango_attr_list_new ();
pango_attr_list_insert (attr_list, pango_attr_foreground_new (color.red, color.green, color.blue));
}
-static void
-on_details_button_clicked (GtkButton *button,
- gpointer userdata)
-{
- ModestCompactMailHeaderView *self = (ModestCompactMailHeaderView *) userdata;
-
- g_return_if_fail (MODEST_IS_COMPACT_MAIL_HEADER_VIEW (self));
-
- g_signal_emit_by_name (G_OBJECT (self), "show-details");
-}
#include <widgets/modest-gtkhtml-msg-view.h>
#include <widgets/modest-isearch-view.h>
#include <widgets/modest-ui-constants.h>
+#include <modest-icon-names.h>
/* FIXNE: we should have no maemo-deps in widgets/ */
#ifndef MODEST_TOOLKIT_GTK
GtkWidget *body_view;
GtkWidget *mail_header_view;
GtkWidget *attachments_view;
+ GtkWidget *priority_icon;
TnyMsg *msg;
/* embedded elements */
GtkWidget *headers_box;
+ GtkWidget *priority_box;
GtkWidget *html_scroll;
GtkWidget *attachments_box;
- GtkWidget *view_images_button;
/* internal adjustments for set_scroll_adjustments */
GtkAdjustment *hadj;
if (priv->mail_header_view)
gtk_box_pack_start (GTK_BOX(priv->headers_box), priv->mail_header_view, FALSE, FALSE, 0);
+ priv->priority_icon = gtk_image_new ();
+ gtk_misc_set_alignment (GTK_MISC (priv->priority_icon), 0.0, 0.5);
+ if (priv->priority_icon) {
+ priv->priority_box = (GtkWidget *)
+ modest_mail_header_view_add_custom_header (MODEST_MAIL_HEADER_VIEW (priv->mail_header_view),
+ _("mcen_me_editor_message_priority"),
+ priv->priority_icon,
+ FALSE, FALSE);
+
+ gtk_widget_hide_all (priv->priority_box);
+ }
+
if (priv->attachments_view) {
#ifndef MODEST_TOOLKIT_HILDON2
gchar *att_label = g_strconcat (_("mcen_me_viewer_attachments"), ":", NULL);
{
ModestGtkhtmlMsgViewPrivate *priv = MODEST_GTKHTML_MSG_VIEW_GET_PRIVATE (self);
- return modest_mime_part_view_has_external_images (MODEST_MIME_PART_VIEW (priv->body_view));
+ return (modest_mime_part_view_has_external_images (MODEST_MIME_PART_VIEW (priv->body_view)) &&
+ !modest_mime_part_view_get_view_images (MODEST_MIME_PART_VIEW (priv->body_view)));
}
static gboolean
TnyMimePart *body;
ModestGtkhtmlMsgViewPrivate *priv;
TnyHeader *header;
+ TnyHeaderFlags flags;
GtkAdjustment *html_vadj;
g_return_if_fail (self);
modest_attachments_view_set_message (MODEST_ATTACHMENTS_VIEW (priv->attachments_view), NULL);
gtk_widget_hide_all (priv->mail_header_view);
gtk_widget_hide_all (priv->attachments_box);
+ gtk_widget_hide_all (priv->priority_box);
gtk_widget_set_no_show_all (priv->mail_header_view, TRUE);
tny_mime_part_view_clear (TNY_MIME_PART_VIEW (priv->body_view));
gtk_widget_queue_resize (GTK_WIDGET(self));
tny_mime_part_view_clear (TNY_MIME_PART_VIEW (priv->body_view));
}
- if (modest_mime_part_view_has_external_images (MODEST_MIME_PART_VIEW (priv->body_view)) &&
- !modest_mime_part_view_get_view_images (MODEST_MIME_PART_VIEW (priv->body_view))) {
- gtk_widget_show (priv->view_images_button);
+ /* Refresh priority */
+ flags = tny_header_get_flags (header);
+ flags = flags && TNY_HEADER_FLAG_PRIORITY_MASK;
+ if (flags == TNY_HEADER_FLAG_NORMAL_PRIORITY) {
+ gtk_widget_hide_all (priv->priority_box);
} else {
- gtk_widget_hide (priv->view_images_button);
+ gtk_widget_show_all (priv->priority_box);
}
gtk_widget_show (priv->body_view);
+ gtk_widget_set_no_show_all (priv->priority_box, TRUE);
gtk_widget_set_no_show_all (priv->attachments_box, TRUE);
gtk_widget_show_all (priv->mail_header_view);
gtk_widget_set_no_show_all (priv->attachments_box, FALSE);
+ gtk_widget_set_no_show_all (priv->priority_box, FALSE);
gtk_widget_set_no_show_all (priv->mail_header_view, TRUE);
gtk_widget_queue_resize (GTK_WIDGET(self));
gtk_widget_queue_draw (GTK_WIDGET(self));
modest_attachments_view_set_message (MODEST_ATTACHMENTS_VIEW (priv->attachments_view), NULL);
gtk_widget_show_all (priv->mail_header_view);
gtk_widget_hide_all (priv->attachments_box);
+ gtk_widget_hide_all (priv->priority_box);
gtk_widget_set_no_show_all (priv->mail_header_view, TRUE);
tny_mime_part_view_clear (TNY_MIME_PART_VIEW (priv->body_view));
gtk_widget_queue_resize (GTK_WIDGET(self));
set_priority (ModestGtkhtmlMsgView *self, TnyHeaderFlags flags)
{
ModestGtkhtmlMsgViewPrivate *priv;
+ TnyHeaderFlags priority_flags;
+ gboolean show_priority = FALSE;
g_return_if_fail (MODEST_IS_GTKHTML_MSG_VIEW (self));
priv = MODEST_GTKHTML_MSG_VIEW_GET_PRIVATE (self);
modest_mail_header_view_set_priority (MODEST_MAIL_HEADER_VIEW (priv->mail_header_view), flags);
+ priority_flags = flags & TNY_HEADER_FLAG_PRIORITY_MASK;
+
+ if (priority_flags == TNY_HEADER_FLAG_HIGH_PRIORITY) {
+ show_priority = TRUE;
+ gtk_image_set_from_icon_name (GTK_IMAGE (priv->priority_icon), MODEST_HEADER_ICON_HIGH, GTK_ICON_SIZE_MENU);
+ } else if (priority_flags == TNY_HEADER_FLAG_LOW_PRIORITY) {
+ show_priority = TRUE;
+ gtk_image_set_from_icon_name (GTK_IMAGE (priv->priority_icon), MODEST_HEADER_ICON_LOW, GTK_ICON_SIZE_MENU);
+ }
+
+ if (show_priority && MODEST_IS_COMPACT_MAIL_HEADER_VIEW (priv->mail_header_view)) {
+ gtk_widget_show_all (priv->priority_box);
+ } else {
+ gtk_widget_hide_all (priv->priority_box);
+ }
}
/* INCREMENTAL SEARCH IMPLEMENTATION */