From bad8aff04f274c58c584bd5f7e8a396918aa9fb4 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Wed, 3 Nov 2010 16:35:02 +0100 Subject: Bug #612181 - Show recurring events in italic in date navigator --- calendar/gui/apps_evolution_calendar.schemas.in | 13 +++++++++++++ calendar/gui/dialogs/cal-prefs-dialog.c | 7 +++++++ calendar/gui/dialogs/cal-prefs-dialog.ui | 17 ++++++++++++++++- calendar/gui/dialogs/recurrence-page.c | 2 +- calendar/gui/gnome-cal.c | 2 +- calendar/gui/tag-calendar.c | 22 +++++++++++++++++++++- calendar/gui/tag-calendar.h | 3 ++- 7 files changed, 61 insertions(+), 5 deletions(-) (limited to 'calendar/gui') diff --git a/calendar/gui/apps_evolution_calendar.schemas.in b/calendar/gui/apps_evolution_calendar.schemas.in index c37bbbd1fb..229020a4db 100644 --- a/calendar/gui/apps_evolution_calendar.schemas.in +++ b/calendar/gui/apps_evolution_calendar.schemas.in @@ -506,6 +506,19 @@ + + + /schemas/apps/evolution/calendar/display/recur_events_italic + /apps/evolution/calendar/display/recur_events_italic + evolution-calendar + bool + false + + Recurrent Events in Italic + Show days with recurrent events in italic font in bottom left calendar. + + + diff --git a/calendar/gui/dialogs/cal-prefs-dialog.c b/calendar/gui/dialogs/cal-prefs-dialog.c index 266d699143..6316211c8a 100644 --- a/calendar/gui/dialogs/cal-prefs-dialog.c +++ b/calendar/gui/dialogs/cal-prefs-dialog.c @@ -789,6 +789,13 @@ calendar_prefs_dialog_construct (CalendarPrefsDialog *prefs, G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + widget = e_builder_get_widget (prefs->builder, "recur_events_italic"); + g_object_bind_property ( + shell_settings, "cal-recur-events-italic", + widget, "active", + G_BINDING_BIDIRECTIONAL | + G_BINDING_SYNC_CREATE); + prefs->month_scroll_by_week = e_builder_get_widget (prefs->builder, "month_scroll_by_week"); widget = e_builder_get_widget (prefs->builder, "tasks_due_today_color"); diff --git a/calendar/gui/dialogs/cal-prefs-dialog.ui b/calendar/gui/dialogs/cal-prefs-dialog.ui index 6b6218df70..7e581cf4ad 100644 --- a/calendar/gui/dialogs/cal-prefs-dialog.ui +++ b/calendar/gui/dialogs/cal-prefs-dialog.ui @@ -977,6 +977,21 @@ 3 + + + Show r_ecurring events in italic in bottom left calendar + True + True + False + True + True + + + False + False + 4 + + Sc_roll Month View by a week @@ -989,7 +1004,7 @@ False False - 4 + 5 diff --git a/calendar/gui/dialogs/recurrence-page.c b/calendar/gui/dialogs/recurrence-page.c index 4014cfbc92..f5ef574efd 100644 --- a/calendar/gui/dialogs/recurrence-page.c +++ b/calendar/gui/dialogs/recurrence-page.c @@ -271,7 +271,7 @@ preview_recur (RecurrencePage *rpage) fill_component (rpage, comp); tag_calendar_by_comp (E_CALENDAR (priv->preview_calendar), comp, - client, zone, TRUE, FALSE); + client, zone, TRUE, FALSE, FALSE); g_object_unref (comp); } diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c index 9b9400dd09..3945003a68 100644 --- a/calendar/gui/gnome-cal.c +++ b/calendar/gui/gnome-cal.c @@ -775,7 +775,7 @@ dn_e_cal_view_objects_added_cb (ECalView *query, GList *objects, gpointer data) tag_calendar_by_comp ( priv->date_navigator, comp, e_cal_view_get_client (query), - NULL, FALSE, TRUE); + NULL, FALSE, TRUE, TRUE); g_object_unref (comp); } } diff --git a/calendar/gui/tag-calendar.c b/calendar/gui/tag-calendar.c index f700da5a3b..0af271e1de 100644 --- a/calendar/gui/tag-calendar.c +++ b/calendar/gui/tag-calendar.c @@ -29,6 +29,8 @@ #endif #include +#include "shell/e-shell.h" +#include "shell/e-shell-settings.h" #include "calendar-config.h" #include "tag-calendar.h" @@ -39,6 +41,7 @@ struct calendar_tag_closure { time_t end_time; gboolean skip_transparent_events; + gboolean recur_events_italic; }; /* Clears all the tags in a calendar and fills a closure structure with the @@ -107,6 +110,8 @@ tag_calendar_cb (ECalComponent *comp, if (c->skip_transparent_events) return TRUE; + style = E_CALENDAR_ITEM_MARK_ITALIC; + } else if (c->recur_events_italic && e_cal_component_is_instance (comp)) { style = E_CALENDAR_ITEM_MARK_ITALIC; } else { style = E_CALENDAR_ITEM_MARK_BOLD; @@ -124,6 +129,18 @@ tag_calendar_cb (ECalComponent *comp, return TRUE; } +static gboolean +get_recur_events_italic (void) +{ + EShell *shell; + EShellSettings *shell_settings; + + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + return e_shell_settings_get_boolean (shell_settings, "cal-recur-events-italic"); +} + /** * tag_calendar_by_client: * @ecal: Calendar widget to tag. @@ -152,6 +169,7 @@ tag_calendar_by_client (ECalendar *ecal, return; c.skip_transparent_events = TRUE; + c.recur_events_italic = get_recur_events_italic (); e_cal_generate_instances ( client, c.start_time, c.end_time, tag_calendar_cb, &c); @@ -202,7 +220,8 @@ tag_calendar_by_comp (ECalendar *ecal, ECal *client, icaltimezone *display_zone, gboolean clear_first, - gboolean comp_is_on_server) + gboolean comp_is_on_server, + gboolean can_recur_events_italic) { struct calendar_tag_closure c; @@ -217,6 +236,7 @@ tag_calendar_by_comp (ECalendar *ecal, return; c.skip_transparent_events = FALSE; + c.recur_events_italic = can_recur_events_italic && get_recur_events_italic (); if (comp_is_on_server) e_cal_generate_instances_for_object ( diff --git a/calendar/gui/tag-calendar.h b/calendar/gui/tag-calendar.h index e1d9fcf0b1..ebf996173e 100644 --- a/calendar/gui/tag-calendar.h +++ b/calendar/gui/tag-calendar.h @@ -33,6 +33,7 @@ void tag_calendar_by_client (ECalendar *ecal, ECal *client); void tag_calendar_by_comp (ECalendar *ecal, ECalComponent *comp, ECal *client, icaltimezone *display_zone, - gboolean clear_first, gboolean comp_is_on_server); + gboolean clear_first, gboolean comp_is_on_server, + gboolean can_recur_events_italic); #endif -- cgit v1.2.3