diff options
-rw-r--r-- | modules/calendar/e-cal-shell-view-actions.c | 17 | ||||
-rw-r--r-- | modules/calendar/e-memo-shell-view-actions.c | 17 | ||||
-rw-r--r-- | modules/calendar/e-task-shell-view-actions.c | 17 |
3 files changed, 6 insertions, 45 deletions
diff --git a/modules/calendar/e-cal-shell-view-actions.c b/modules/calendar/e-cal-shell-view-actions.c index 4e80a99db2..552e0f99a9 100644 --- a/modules/calendar/e-cal-shell-view-actions.c +++ b/modules/calendar/e-cal-shell-view-actions.c @@ -411,27 +411,14 @@ action_calendar_select_one_cb (GtkAction *action, ECalShellSidebar *cal_shell_sidebar; ESourceSelector *selector; ESource *primary; - GSList *list, *iter; - - /* XXX ESourceSelector should provide a function for this. */ cal_shell_sidebar = cal_shell_view->priv->cal_shell_sidebar; selector = e_cal_shell_sidebar_get_selector (cal_shell_sidebar); + primary = e_source_selector_peek_primary_selection (selector); g_return_if_fail (primary != NULL); - list = e_source_selector_get_selection (selector); - for (iter = list; iter != NULL; iter = iter->next) { - ESource *source = iter->data; - - if (source == primary) - continue; - - e_source_selector_unselect_source (selector, source); - } - e_source_selector_free_selection (list); - - e_source_selector_select_source (selector, primary); + e_source_selector_select_exclusive (selector, primary); } static void diff --git a/modules/calendar/e-memo-shell-view-actions.c b/modules/calendar/e-memo-shell-view-actions.c index f53b8ff406..515118f088 100644 --- a/modules/calendar/e-memo-shell-view-actions.c +++ b/modules/calendar/e-memo-shell-view-actions.c @@ -315,27 +315,14 @@ action_memo_list_select_one_cb (GtkAction *action, EMemoShellSidebar *memo_shell_sidebar; ESourceSelector *selector; ESource *primary; - GSList *list, *iter; - - /* XXX ESourceSelector should provide a function for this. */ memo_shell_sidebar = memo_shell_view->priv->memo_shell_sidebar; selector = e_memo_shell_sidebar_get_selector (memo_shell_sidebar); + primary = e_source_selector_peek_primary_selection (selector); g_return_if_fail (primary != NULL); - list = e_source_selector_get_selection (selector); - for (iter = list; iter != NULL; iter = iter->next) { - ESource *source = iter->data; - - if (source == primary) - continue; - - e_source_selector_unselect_source (selector, source); - } - e_source_selector_free_selection (list); - - e_source_selector_select_source (selector, primary); + e_source_selector_select_exclusive (selector, primary); } static void diff --git a/modules/calendar/e-task-shell-view-actions.c b/modules/calendar/e-task-shell-view-actions.c index 55873dd9f9..6452e57c3a 100644 --- a/modules/calendar/e-task-shell-view-actions.c +++ b/modules/calendar/e-task-shell-view-actions.c @@ -338,27 +338,14 @@ action_task_list_select_one_cb (GtkAction *action, ETaskShellSidebar *task_shell_sidebar; ESourceSelector *selector; ESource *primary; - GSList *list, *iter; - - /* XXX ESourceSelector should provide a function for this. */ task_shell_sidebar = task_shell_view->priv->task_shell_sidebar; selector = e_task_shell_sidebar_get_selector (task_shell_sidebar); + primary = e_source_selector_peek_primary_selection (selector); g_return_if_fail (primary != NULL); - list = e_source_selector_get_selection (selector); - for (iter = list; iter != NULL; iter = iter->next) { - ESource *source = iter->data; - - if (source == primary) - continue; - - e_source_selector_unselect_source (selector, source); - } - e_source_selector_free_selection (list); - - e_source_selector_select_source (selector, primary); + e_source_selector_select_exclusive (selector, primary); } static void |