aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-03-07 09:27:31 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-03-17 20:49:12 +0800
commit3b205698762afcd86ac79595960253d84aff5487 (patch)
treef0f1ae05b5bd7fbd0008dbd8dbdd10908ebc1c6c /calendar/gui/dialogs
parent5a7097278a6f6eb2a984d9e0c742342135971c35 (diff)
downloadgsoc2013-evolution-3b205698762afcd86ac79595960253d84aff5487.tar
gsoc2013-evolution-3b205698762afcd86ac79595960253d84aff5487.tar.gz
gsoc2013-evolution-3b205698762afcd86ac79595960253d84aff5487.tar.bz2
gsoc2013-evolution-3b205698762afcd86ac79595960253d84aff5487.tar.lz
gsoc2013-evolution-3b205698762afcd86ac79595960253d84aff5487.tar.xz
gsoc2013-evolution-3b205698762afcd86ac79595960253d84aff5487.tar.zst
gsoc2013-evolution-3b205698762afcd86ac79595960253d84aff5487.zip
Convert all "week-start-day" properties to GDateWeekday.
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r--calendar/gui/dialogs/comp-editor.c19
-rw-r--r--calendar/gui/dialogs/comp-editor.h4
-rw-r--r--calendar/gui/dialogs/recurrence-page.c126
3 files changed, 118 insertions, 31 deletions
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index cb7de1f881..f36bebc694 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
@@ -108,7 +108,7 @@ struct _CompEditorPrivate {
icaltimezone *zone;
gboolean use_24_hour_format;
- gint week_start_day;
+ GDateWeekday week_start_day;
gint work_day_end_hour;
gint work_day_end_minute;
@@ -1428,7 +1428,7 @@ comp_editor_set_property (GObject *object,
case PROP_WEEK_START_DAY:
comp_editor_set_week_start_day (
COMP_EDITOR (object),
- g_value_get_int (value));
+ g_value_get_enum (value));
return;
case PROP_WORK_DAY_END_HOUR:
@@ -1515,7 +1515,7 @@ comp_editor_get_property (GObject *object,
return;
case PROP_WEEK_START_DAY:
- g_value_set_int (
+ g_value_set_enum (
value, comp_editor_get_week_start_day (
COMP_EDITOR (object)));
return;
@@ -1909,13 +1909,12 @@ comp_editor_class_init (CompEditorClass *class)
g_object_class_install_property (
object_class,
PROP_WEEK_START_DAY,
- g_param_spec_int (
+ g_param_spec_enum (
"week-start-day",
"Week Start Day",
NULL,
- 0, /* Monday */
- 6, /* Sunday */
- 0,
+ E_TYPE_DATE_WEEKDAY,
+ G_DATE_MONDAY,
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
@@ -2557,7 +2556,7 @@ comp_editor_set_use_24_hour_format (CompEditor *editor,
g_object_notify (G_OBJECT (editor), "use-24-hour-format");
}
-gint
+GDateWeekday
comp_editor_get_week_start_day (CompEditor *editor)
{
g_return_val_if_fail (IS_COMP_EDITOR (editor), 0);
@@ -2567,10 +2566,10 @@ comp_editor_get_week_start_day (CompEditor *editor)
void
comp_editor_set_week_start_day (CompEditor *editor,
- gint week_start_day)
+ GDateWeekday week_start_day)
{
g_return_if_fail (IS_COMP_EDITOR (editor));
- g_return_if_fail (week_start_day >= 0 && week_start_day < 7);
+ g_return_if_fail (g_date_valid_weekday (week_start_day));
if (week_start_day == editor->priv->week_start_day)
return;
diff --git a/calendar/gui/dialogs/comp-editor.h b/calendar/gui/dialogs/comp-editor.h
index b343081dcc..6721a87978 100644
--- a/calendar/gui/dialogs/comp-editor.h
+++ b/calendar/gui/dialogs/comp-editor.h
@@ -134,9 +134,9 @@ gboolean comp_editor_get_use_24_hour_format
void comp_editor_set_use_24_hour_format
(CompEditor *editor,
gboolean use_24_hour_format);
-gint comp_editor_get_week_start_day (CompEditor *editor);
+GDateWeekday comp_editor_get_week_start_day (CompEditor *editor);
void comp_editor_set_week_start_day (CompEditor *editor,
- gint week_start_day);
+ GDateWeekday week_start_day);
gint comp_editor_get_work_day_end_hour
(CompEditor *editor);
void comp_editor_set_work_day_end_hour
diff --git a/calendar/gui/dialogs/recurrence-page.c b/calendar/gui/dialogs/recurrence-page.c
index 3dd6d7ce2c..3ceb08476e 100644
--- a/calendar/gui/dialogs/recurrence-page.c
+++ b/calendar/gui/dialogs/recurrence-page.c
@@ -748,8 +748,33 @@ simple_recur_to_comp (RecurrencePage *rpage,
r.freq = e_dialog_combo_box_get (priv->interval_unit_combo, freq_map);
r.interval = gtk_spin_button_get_value_as_int (
GTK_SPIN_BUTTON (priv->interval_value));
- r.week_start = ICAL_SUNDAY_WEEKDAY +
- comp_editor_get_week_start_day (editor);
+
+ switch (comp_editor_get_week_start_day (editor)) {
+ case G_DATE_MONDAY:
+ r.week_start = ICAL_MONDAY_WEEKDAY;
+ break;
+ case G_DATE_TUESDAY:
+ r.week_start = ICAL_TUESDAY_WEEKDAY;
+ break;
+ case G_DATE_WEDNESDAY:
+ r.week_start = ICAL_WEDNESDAY_WEEKDAY;
+ break;
+ case G_DATE_THURSDAY:
+ r.week_start = ICAL_THURSDAY_WEEKDAY;
+ break;
+ case G_DATE_FRIDAY:
+ r.week_start = ICAL_FRIDAY_WEEKDAY;
+ break;
+ case G_DATE_SATURDAY:
+ r.week_start = ICAL_SATURDAY_WEEKDAY;
+ break;
+ case G_DATE_SUNDAY:
+ r.week_start = ICAL_SUNDAY_WEEKDAY;
+ break;
+ default:
+ g_warn_if_reached ();
+ break;
+ }
/* Frequency-specific data */
@@ -759,36 +784,35 @@ simple_recur_to_comp (RecurrencePage *rpage,
break;
case ICAL_WEEKLY_RECURRENCE: {
- guint8 day_mask;
+ EWeekdayChooser *chooser;
gint i;
g_return_if_fail (gtk_bin_get_child (GTK_BIN (priv->special)) != NULL);
g_return_if_fail (E_IS_WEEKDAY_CHOOSER (priv->weekday_chooser));
- day_mask = e_weekday_chooser_get_days (
- E_WEEKDAY_CHOOSER (priv->weekday_chooser));
+ chooser = E_WEEKDAY_CHOOSER (priv->weekday_chooser);
i = 0;
- if (day_mask & (1 << 0))
+ if (e_weekday_chooser_get_selected (chooser, E_DATE_SUNDAY))
r.by_day[i++] = ICAL_SUNDAY_WEEKDAY;
- if (day_mask & (1 << 1))
+ if (e_weekday_chooser_get_selected (chooser, E_DATE_MONDAY))
r.by_day[i++] = ICAL_MONDAY_WEEKDAY;
- if (day_mask & (1 << 2))
+ if (e_weekday_chooser_get_selected (chooser, E_DATE_TUESDAY))
r.by_day[i++] = ICAL_TUESDAY_WEEKDAY;
- if (day_mask & (1 << 3))
+ if (e_weekday_chooser_get_selected (chooser, E_DATE_WEDNESDAY))
r.by_day[i++] = ICAL_WEDNESDAY_WEEKDAY;
- if (day_mask & (1 << 4))
+ if (e_weekday_chooser_get_selected (chooser, E_DATE_THURSDAY))
r.by_day[i++] = ICAL_THURSDAY_WEEKDAY;
- if (day_mask & (1 << 5))
+ if (e_weekday_chooser_get_selected (chooser, E_DATE_FRIDAY))
r.by_day[i++] = ICAL_FRIDAY_WEEKDAY;
- if (day_mask & (1 << 6))
+ if (e_weekday_chooser_get_selected (chooser, E_DATE_SATURDAY))
r.by_day[i] = ICAL_SATURDAY_WEEKDAY;
break;
@@ -1058,7 +1082,27 @@ make_weekly_special (RecurrencePage *rpage)
/* Set the weekdays */
- e_weekday_chooser_set_days (chooser, priv->weekday_day_mask);
+ e_weekday_chooser_set_selected (
+ chooser, G_DATE_SUNDAY,
+ (priv->weekday_day_mask & (1 << 0)) != 0);
+ e_weekday_chooser_set_selected (
+ chooser, G_DATE_MONDAY,
+ (priv->weekday_day_mask & (1 << 1)) != 0);
+ e_weekday_chooser_set_selected (
+ chooser, G_DATE_TUESDAY,
+ (priv->weekday_day_mask & (1 << 2)) != 0);
+ e_weekday_chooser_set_selected (
+ chooser, G_DATE_WEDNESDAY,
+ (priv->weekday_day_mask & (1 << 3)) != 0);
+ e_weekday_chooser_set_selected (
+ chooser, G_DATE_THURSDAY,
+ (priv->weekday_day_mask & (1 << 4)) != 0);
+ e_weekday_chooser_set_selected (
+ chooser, G_DATE_FRIDAY,
+ (priv->weekday_day_mask & (1 << 5)) != 0);
+ e_weekday_chooser_set_selected (
+ chooser, G_DATE_SATURDAY,
+ (priv->weekday_day_mask & (1 << 6)) != 0);
g_signal_connect_swapped (
chooser, "changed",
@@ -2086,12 +2130,56 @@ recurrence_page_set_dates (CompEditorPage *page,
priv->weekday_blocked_day_mask = mask;
if (priv->weekday_chooser != NULL) {
- e_weekday_chooser_set_days (
- E_WEEKDAY_CHOOSER (priv->weekday_chooser),
- priv->weekday_day_mask);
- e_weekday_chooser_set_blocked_days (
- E_WEEKDAY_CHOOSER (priv->weekday_chooser),
- priv->weekday_blocked_day_mask);
+ EWeekdayChooser *chooser;
+ guint8 mask;
+
+ chooser = E_WEEKDAY_CHOOSER (priv->weekday_chooser);
+
+ mask = priv->weekday_day_mask;
+ e_weekday_chooser_set_selected (
+ chooser, G_DATE_SUNDAY,
+ (mask & (1 << 0)) != 0);
+ e_weekday_chooser_set_selected (
+ chooser, G_DATE_MONDAY,
+ (mask & (1 << 1)) != 0);
+ e_weekday_chooser_set_selected (
+ chooser, G_DATE_TUESDAY,
+ (mask & (1 << 2)) != 0);
+ e_weekday_chooser_set_selected (
+ chooser, G_DATE_WEDNESDAY,
+ (mask & (1 << 3)) != 0);
+ e_weekday_chooser_set_selected (
+ chooser, G_DATE_THURSDAY,
+ (mask & (1 << 4)) != 0);
+ e_weekday_chooser_set_selected (
+ chooser, G_DATE_FRIDAY,
+ (mask & (1 << 5)) != 0);
+ e_weekday_chooser_set_selected (
+ chooser, G_DATE_SATURDAY,
+ (mask & (1 << 6)) != 0);
+
+ mask = priv->weekday_blocked_day_mask;
+ e_weekday_chooser_set_blocked (
+ chooser, G_DATE_SUNDAY,
+ (mask & (1 << 0)) != 0);
+ e_weekday_chooser_set_blocked (
+ chooser, G_DATE_MONDAY,
+ (mask & (1 << 1)) != 0);
+ e_weekday_chooser_set_blocked (
+ chooser, G_DATE_TUESDAY,
+ (mask & (1 << 2)) != 0);
+ e_weekday_chooser_set_blocked (
+ chooser, G_DATE_WEDNESDAY,
+ (mask & (1 << 3)) != 0);
+ e_weekday_chooser_set_blocked (
+ chooser, G_DATE_THURSDAY,
+ (mask & (1 << 4)) != 0);
+ e_weekday_chooser_set_blocked (
+ chooser, G_DATE_FRIDAY,
+ (mask & (1 << 5)) != 0);
+ e_weekday_chooser_set_blocked (
+ chooser, G_DATE_SATURDAY,
+ (mask & (1 << 6)) != 0);
}
}