diff options
author | Milan Crha <mcrha@redhat.com> | 2010-11-03 23:35:02 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2010-11-03 23:35:02 +0800 |
commit | bad8aff04f274c58c584bd5f7e8a396918aa9fb4 (patch) | |
tree | 5f6ce51b7135bb15fbf3806585592b61877f1045 | |
parent | 7ce11c62eae2c3b27cb8d2c00c00f9d2a50ac560 (diff) | |
download | gsoc2013-evolution-bad8aff04f274c58c584bd5f7e8a396918aa9fb4.tar.gz gsoc2013-evolution-bad8aff04f274c58c584bd5f7e8a396918aa9fb4.tar.zst gsoc2013-evolution-bad8aff04f274c58c584bd5f7e8a396918aa9fb4.zip |
Bug #612181 - Show recurring events in italic in date navigator
-rw-r--r-- | calendar/gui/apps_evolution_calendar.schemas.in | 13 | ||||
-rw-r--r-- | calendar/gui/dialogs/cal-prefs-dialog.c | 7 | ||||
-rw-r--r-- | calendar/gui/dialogs/cal-prefs-dialog.ui | 17 | ||||
-rw-r--r-- | calendar/gui/dialogs/recurrence-page.c | 2 | ||||
-rw-r--r-- | calendar/gui/gnome-cal.c | 2 | ||||
-rw-r--r-- | calendar/gui/tag-calendar.c | 22 | ||||
-rw-r--r-- | calendar/gui/tag-calendar.h | 3 | ||||
-rw-r--r-- | modules/calendar/e-cal-shell-settings.c | 4 |
8 files changed, 65 insertions, 5 deletions
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 @@ </locale> </schema> + + <schema> + <key>/schemas/apps/evolution/calendar/display/recur_events_italic</key> + <applyto>/apps/evolution/calendar/display/recur_events_italic</applyto> + <owner>evolution-calendar</owner> + <type>bool</type> + <default>false</default> + <locale name="C"> + <short>Recurrent Events in Italic</short> + <long>Show days with recurrent events in italic font in bottom left calendar.</long> + </locale> + </schema> + <!-- Memos --> <schema> 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 @@ -978,6 +978,21 @@ </packing> </child> <child> + <object class="GtkCheckButton" id="recur_events_italic"> + <property name="label" translatable="yes">Show r_ecurring events in italic in bottom left calendar</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">4</property> + </packing> + </child> + <child> <object class="GtkCheckButton" id="month_scroll_by_week"> <property name="label" translatable="yes">Sc_roll Month View by a week</property> <property name="visible">True</property> @@ -989,7 +1004,7 @@ <packing> <property name="expand">False</property> <property name="fill">False</property> - <property name="position">4</property> + <property name="position">5</property> </packing> </child> </object> 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 <libecal/e-cal-time-util.h> +#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 @@ -108,6 +111,8 @@ tag_calendar_cb (ECalComponent *comp, 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 diff --git a/modules/calendar/e-cal-shell-settings.c b/modules/calendar/e-cal-shell-settings.c index 0ab35ebfee..524157c5a9 100644 --- a/modules/calendar/e-cal-shell-settings.c +++ b/modules/calendar/e-cal-shell-settings.c @@ -551,6 +551,10 @@ e_cal_shell_backend_init_settings (EShell *shell) "/apps/evolution/calendar/tasks/primary_tasks"); e_shell_settings_install_property_for_key ( + "cal-recur-events-italic", + "/apps/evolution/calendar/display/recur_events_italic"); + + e_shell_settings_install_property_for_key ( "cal-show-event-end-times", "/apps/evolution/calendar/display/show_event_end"); |