[gnome-calendar] event-widget: show start time when event is timed
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar] event-widget: show start time when event is timed
- Date: Tue, 1 Mar 2016 02:24:58 +0000 (UTC)
commit 5227f3fcdcbecfaf1ff08c3e011bcc6372e727d4
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Mon Feb 29 23:20:08 2016 -0300
event-widget: show start time when event is timed
We differentiate all day events from timed events by their
ordering, but we don't give any visual clues of this
differentiation.
Fix that by adding the start time of the event when it's a
timed event.
https://bugzilla.gnome.org/show_bug.cgi?id=753131
src/gcal-event-widget.c | 25 ++++++++++++++++++++++++-
1 files changed, 24 insertions(+), 1 deletions(-)
---
diff --git a/src/gcal-event-widget.c b/src/gcal-event-widget.c
index 7948b92..e1c5518 100644
--- a/src/gcal-event-widget.c
+++ b/src/gcal-event-widget.c
@@ -423,6 +423,7 @@ gcal_event_widget_draw (GtkWidget *widget,
PangoLayout *layout;
PangoFontDescription *font_desc;
+ gchar *display_text;
self = GCAL_EVENT_WIDGET (widget);
context = gtk_widget_get_style_context (widget);
@@ -436,9 +437,30 @@ gcal_event_widget_draw (GtkWidget *widget,
gtk_render_background (context, cr, 0, 0, width, height);
gtk_render_frame (context, cr, 0, 0, width, height);
+ /*
+ * The text displayed in the widget includes the time when the event
+ * is timed, or not if the event is all day.
+ */
+ if (gcal_event_get_all_day (self->event))
+ {
+ display_text = g_strdup (gcal_event_get_summary (self->event));
+ }
+ else
+ {
+ GDateTime *local_start_time;
+ gchar *start_time;
+
+ local_start_time = g_date_time_to_local (gcal_event_get_date_start (self->event));
+ start_time = g_date_time_format (local_start_time, "%R%p");
+ display_text = g_strdup_printf ("(%s) %s", start_time, gcal_event_get_summary (self->event));
+
+ g_clear_pointer (&local_start_time, g_date_time_unref);
+ g_clear_pointer (&start_time, g_free);
+ }
+
/* FIXME for RTL alignment and icons positions */
gtk_style_context_get (context, state, "font", &font_desc, NULL);
- layout = gtk_widget_create_pango_layout (widget, gcal_event_get_summary (self->event));
+ layout = gtk_widget_create_pango_layout (widget, display_text);
pango_layout_set_font_description (layout, font_desc);
pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_END);
pango_layout_set_width (layout, (width - (padding.left + padding.right) ) * PANGO_SCALE);
@@ -512,6 +534,7 @@ gcal_event_widget_draw (GtkWidget *widget,
pango_font_description_free (font_desc);
g_object_unref (layout);
+ g_free (display_text);
return FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]