diff -up evolution-3.12.11/calendar/gui/e-day-view.c.calendar-visualize-itip-state evolution-3.12.11/calendar/gui/e-day-view.c --- evolution-3.12.11/calendar/gui/e-day-view.c.calendar-visualize-itip-state 2015-06-16 23:01:31.106959271 +0200 +++ evolution-3.12.11/calendar/gui/e-day-view.c 2015-06-16 23:01:31.121959143 +0200 @@ -2995,8 +2995,8 @@ e_day_view_remove_event_cb (EDayView *da /* Checks if the users participation status is NEEDS-ACTION and shows the summary as bold text */ static void -set_text_as_bold (EDayViewEvent *event, - ESourceRegistry *registry) +set_style_from_attendee (EDayViewEvent *event, + ESourceRegistry *registry) { ECalComponent *comp; GSList *attendees = NULL, *l; @@ -3026,6 +3026,12 @@ set_text_as_bold (EDayViewEvent *event, * In that case, we never show the meeting as bold even if it is unaccepted. */ if (at && (at->status == ICAL_PARTSTAT_NEEDSACTION)) gnome_canvas_item_set (event->canvas_item, "bold", TRUE, NULL); + else if (at && at->status == ICAL_PARTSTAT_DECLINED) + gnome_canvas_item_set (event->canvas_item, "strikeout", TRUE, NULL); + else if (at && at->status == ICAL_PARTSTAT_TENTATIVE) + gnome_canvas_item_set (event->canvas_item, "italic", TRUE, NULL); + else if (at && at->status == ICAL_PARTSTAT_DELEGATED) + gnome_canvas_item_set (event->canvas_item, "italic", TRUE, "strikeout", TRUE, NULL); e_cal_component_free_attendee_list (attendees); g_free (address); @@ -3105,9 +3111,8 @@ e_day_view_update_event_label (EDayView "text", text, NULL); - if (e_client_check_capability (E_CLIENT (event->comp_data->client), CAL_STATIC_CAPABILITY_HAS_UNACCEPTED_MEETING) - && e_cal_util_component_has_attendee (event->comp_data->icalcomp)) - set_text_as_bold (event, registry); + if (e_cal_util_component_has_attendee (event->comp_data->icalcomp)) + set_style_from_attendee (event, registry); if (free_text) g_free (text); @@ -3149,9 +3154,8 @@ e_day_view_update_long_event_label (EDay if (free_text) g_free ((gchar *) summary); - if (e_client_check_capability (E_CLIENT (event->comp_data->client), CAL_STATIC_CAPABILITY_HAS_UNACCEPTED_MEETING) - && e_cal_util_component_has_attendee (event->comp_data->icalcomp)) - set_text_as_bold (event, registry); + if (e_cal_util_component_has_attendee (event->comp_data->icalcomp)) + set_style_from_attendee (event, registry); } /* Finds the day and index of the event with the given canvas item. diff -up evolution-3.12.11/calendar/gui/e-week-view.c.calendar-visualize-itip-state evolution-3.12.11/calendar/gui/e-week-view.c --- evolution-3.12.11/calendar/gui/e-week-view.c.calendar-visualize-itip-state 2014-12-22 16:05:29.000000000 +0100 +++ evolution-3.12.11/calendar/gui/e-week-view.c 2015-06-16 23:01:31.121959143 +0200 @@ -2389,9 +2389,9 @@ e_week_view_recalc_display_start_day (EW /* Checks if the users participation status is NEEDS-ACTION and shows the summary as bold text */ static void -set_text_as_bold (EWeekViewEvent *event, - EWeekViewEventSpan *span, - ESourceRegistry *registry) +set_style_from_attendee (EWeekViewEvent *event, + EWeekViewEventSpan *span, + ESourceRegistry *registry) { ECalComponent *comp; GSList *attendees = NULL, *l; @@ -2419,8 +2419,14 @@ set_text_as_bold (EWeekViewEvent *event, /* The attendee has not yet accepted the meeting, display the summary as bolded. * If the attendee is not present, it might have come through a mailing list. * In that case, we never show the meeting as bold even if it is unaccepted. */ - if (at && (at->status == ICAL_PARTSTAT_NEEDSACTION)) + if (at && at->status == ICAL_PARTSTAT_NEEDSACTION) gnome_canvas_item_set (span->text_item, "bold", TRUE, NULL); + else if (at && at->status == ICAL_PARTSTAT_DECLINED) + gnome_canvas_item_set (span->text_item, "strikeout", TRUE, NULL); + else if (at && at->status == ICAL_PARTSTAT_TENTATIVE) + gnome_canvas_item_set (span->text_item, "italic", TRUE, NULL); + else if (at && at->status == ICAL_PARTSTAT_DELEGATED) + gnome_canvas_item_set (span->text_item, "italic", TRUE, "strikeout", TRUE, NULL); e_cal_component_free_attendee_list (attendees); g_free (address); @@ -3538,10 +3544,9 @@ e_week_view_reshape_event_span (EWeekVie if (free_text) g_free ((gchar *) summary); - if (e_client_check_capability (E_CLIENT (event->comp_data->client), CAL_STATIC_CAPABILITY_HAS_UNACCEPTED_MEETING) - && e_cal_util_component_has_attendee (event->comp_data->icalcomp)) { - set_text_as_bold (event, span, registry); - } + if (e_cal_util_component_has_attendee (event->comp_data->icalcomp)) + set_style_from_attendee (event, span, registry); + g_object_set_data (G_OBJECT (span->text_item), "event-num", GINT_TO_POINTER (event_num)); g_signal_connect ( span->text_item, "event", diff -up evolution-3.12.11/e-util/e-text.c.calendar-visualize-itip-state evolution-3.12.11/e-util/e-text.c --- evolution-3.12.11/e-util/e-text.c.calendar-visualize-itip-state 2014-10-09 11:06:35.000000000 +0200 +++ evolution-3.12.11/e-util/e-text.c 2015-06-16 23:01:31.122959135 +0200 @@ -75,6 +75,7 @@ enum { PROP_TEXT, PROP_BOLD, PROP_STRIKEOUT, + PROP_ITALIC, PROP_ANCHOR, PROP_JUSTIFICATION, PROP_CLIP_WIDTH, @@ -307,7 +308,7 @@ reset_layout_attrs (EText *text) object_count = e_text_model_object_count (text->model); - if (text->bold || text->strikeout || object_count > 0) { + if (text->bold || text->strikeout || text->italic || object_count > 0) { gint length = 0; gint i; @@ -330,7 +331,7 @@ reset_layout_attrs (EText *text) pango_attr_list_insert (attrs, attr); } - if (text->bold || text->strikeout) + if (text->bold || text->strikeout || text->italic) length = strlen (text->text); if (text->bold) { @@ -340,6 +341,7 @@ reset_layout_attrs (EText *text) pango_attr_list_insert_before (attrs, attr); } + if (text->strikeout) { PangoAttribute *attr = pango_attr_strikethrough_new (TRUE); attr->start_index = 0; @@ -347,6 +349,14 @@ reset_layout_attrs (EText *text) pango_attr_list_insert_before (attrs, attr); } + + if (text->italic) { + PangoAttribute *attr = pango_attr_style_new (PANGO_STYLE_ITALIC); + attr->start_index = 0; + attr->end_index = length; + + pango_attr_list_insert_before (attrs, attr); + } } pango_layout_set_attributes (text->layout, attrs); @@ -668,6 +678,12 @@ e_text_set_property (GObject *object, needs_update = 1; break; + case PROP_ITALIC: + text->italic = g_value_get_boolean (value); + text->needs_redraw = 1; + needs_update = 1; + break; + case PROP_JUSTIFICATION: text->justification = g_value_get_enum (value); text->needs_redraw = 1; @@ -916,6 +932,10 @@ e_text_get_property (GObject *object, g_value_set_boolean (value, text->strikeout); break; + case PROP_ITALIC: + g_value_set_boolean (value, text->italic); + break; + case PROP_JUSTIFICATION: g_value_set_enum (value, text->justification); break; @@ -3036,6 +3056,16 @@ e_text_class_init (ETextClass *class) g_object_class_install_property ( gobject_class, + PROP_ITALIC, + g_param_spec_boolean ( + "italic", + "Italic", + "Italic", + FALSE, + G_PARAM_READWRITE)); + + g_object_class_install_property ( + gobject_class, PROP_JUSTIFICATION, g_param_spec_enum ( "justification", @@ -3343,6 +3373,7 @@ e_text_init (EText *text) text->bold = FALSE; text->strikeout = FALSE; + text->italic = FALSE; text->allow_newlines = TRUE; diff -up evolution-3.12.11/e-util/e-text.h.calendar-visualize-itip-state evolution-3.12.11/e-util/e-text.h --- evolution-3.12.11/e-util/e-text.h.calendar-visualize-itip-state 2014-07-07 12:56:18.000000000 +0200 +++ evolution-3.12.11/e-util/e-text.h 2015-06-16 23:01:31.122959135 +0200 @@ -186,6 +186,7 @@ struct _EText { guint bold : 1; guint strikeout : 1; + guint italic : 1; guint tooltip_owner : 1; guint allow_newlines : 1;