From 3b205698762afcd86ac79595960253d84aff5487 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 6 Mar 2013 20:27:31 -0500 Subject: Convert all "week-start-day" properties to GDateWeekday. --- modules/calendar/e-cal-shell-settings.c | 63 ++++------------------------- modules/calendar/e-cal-shell-view-private.c | 7 ++-- modules/calendar/e-calendar-preferences.c | 9 +++-- modules/calendar/e-calendar-preferences.ui | 47 +++++---------------- 4 files changed, 27 insertions(+), 99 deletions(-) (limited to 'modules') diff --git a/modules/calendar/e-cal-shell-settings.c b/modules/calendar/e-cal-shell-settings.c index 7f6527b531..d3288401f5 100644 --- a/modules/calendar/e-cal-shell-settings.c +++ b/modules/calendar/e-cal-shell-settings.c @@ -147,31 +147,7 @@ transform_weekdays_settings_to_evolution (GBinding *binding, } /* Evolution numbering */ - switch (weekday) { - case G_DATE_MONDAY: - g_value_set_int (target_value, 0); - break; - case G_DATE_TUESDAY: - g_value_set_int (target_value, 1); - break; - case G_DATE_WEDNESDAY: - g_value_set_int (target_value, 2); - break; - case G_DATE_THURSDAY: - g_value_set_int (target_value, 3); - break; - case G_DATE_FRIDAY: - g_value_set_int (target_value, 4); - break; - case G_DATE_SATURDAY: - g_value_set_int (target_value, 5); - break; - case G_DATE_SUNDAY: - g_value_set_int (target_value, 6); - break; - default: - return FALSE; - } + g_value_set_enum (target_value, weekday); return TRUE; } @@ -192,34 +168,10 @@ transform_weekdays_evolution_to_settings (GBinding *binding, /* This is purposefully verbose for better readability. */ - /* setting numbering */ - switch (g_value_get_int (source_value)) { - case 0: - weekday = G_DATE_MONDAY; - break; - case 1: - weekday = G_DATE_TUESDAY; - break; - case 2: - weekday = G_DATE_WEDNESDAY; - break; - case 3: - weekday = G_DATE_THURSDAY; - break; - case 4: - weekday = G_DATE_FRIDAY; - break; - case 5: - weekday = G_DATE_SATURDAY; - break; - case 6: - weekday = G_DATE_SUNDAY; - break; - default: - return FALSE; - } - /* Evolution numbering */ + weekday = g_value_get_enum (source_value); + + /* setting numbering */ switch (weekday) { case G_DATE_MONDAY: g_value_set_int (target_value, 1); @@ -802,13 +754,12 @@ e_cal_shell_backend_init_settings (EShell *shell) (GDestroyNotify) g_object_unref); e_shell_settings_install_property ( - g_param_spec_int ( + g_param_spec_enum ( "cal-week-start-day", NULL, NULL, - 0, /* Monday */ - 6, /* Sunday */ - 0, + E_TYPE_DATE_WEEKDAY, + G_DATE_MONDAY, G_PARAM_READWRITE)); g_object_bind_property_full ( diff --git a/modules/calendar/e-cal-shell-view-private.c b/modules/calendar/e-cal-shell-view-private.c index b8a5583b37..4561ad35dd 100644 --- a/modules/calendar/e-cal-shell-view-private.c +++ b/modules/calendar/e-cal-shell-view-private.c @@ -96,7 +96,7 @@ cal_shell_view_date_navigator_selection_changed_cb (ECalShellView *cal_shell_vie time_t start, end, new_time; gboolean starts_on_week_start_day; gint new_days_shown, old_days_shown; - gint week_start_day; + GDateWeekday week_start_day; cal_shell_content = cal_shell_view->priv->cal_shell_content; calendar = e_cal_shell_content_get_calendar (cal_shell_content); @@ -125,7 +125,8 @@ cal_shell_view_date_navigator_selection_changed_cb (ECalShellView *cal_shell_vie multi_week_view = e_week_view_get_multi_week_view (week_view); compress_weekend = e_week_view_get_compress_weekend (week_view); - if (week_start_day == 0 && (!multi_week_view || compress_weekend)) + if (week_start_day == G_DATE_SUNDAY && + (!multi_week_view || compress_weekend)) g_date_add_days (&start_date, 1); } @@ -151,7 +152,7 @@ cal_shell_view_date_navigator_selection_changed_cb (ECalShellView *cal_shell_vie * day is set to Sunday, we don't actually show complete * weeks in the week view, so this may need tweaking. */ starts_on_week_start_day = - (g_date_get_weekday (&new_start_date) % 7 == week_start_day); + (g_date_get_weekday (&new_start_date) == week_start_day); /* Update selection to be in the new time range. */ tt = icaltime_null_time (); diff --git a/modules/calendar/e-calendar-preferences.c b/modules/calendar/e-calendar-preferences.c index 5c71fd81fa..0079b2cf95 100644 --- a/modules/calendar/e-calendar-preferences.c +++ b/modules/calendar/e-calendar-preferences.c @@ -584,11 +584,14 @@ calendar_preferences_construct (ECalendarPreferences *prefs, G_BINDING_SYNC_CREATE); widget = e_builder_get_widget (prefs->builder, "week_start_day"); - g_object_bind_property ( + g_object_bind_property_full ( shell_settings, "cal-week-start-day", - widget, "active", + widget, "active-id", G_BINDING_BIDIRECTIONAL | - G_BINDING_SYNC_CREATE); + G_BINDING_SYNC_CREATE, + e_binding_transform_enum_value_to_nick, + e_binding_transform_enum_nick_to_value, + NULL, (GDestroyNotify) NULL); widget = e_builder_get_widget (prefs->builder, "start_of_day"); prefs->start_of_day = widget; /* XXX delete this */ diff --git a/modules/calendar/e-calendar-preferences.ui b/modules/calendar/e-calendar-preferences.ui index cb508ae3be..7af3f2036d 100644 --- a/modules/calendar/e-calendar-preferences.ui +++ b/modules/calendar/e-calendar-preferences.ui @@ -19,35 +19,6 @@ 1 10 - - - - - - - - Monday - - - Tuesday - - - Wednesday - - - Thursday - - - Friday - - - Saturday - - - Sunday - - - @@ -588,15 +559,17 @@ - + True - model1 - - - - 0 - - + + Monday + Tuesday + Wednesday + Thursday + Friday + Saturday + Sunday + 1 -- cgit v1.2.3