aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--modules/calendar/e-cal-shell-view-actions.c17
-rw-r--r--modules/calendar/e-memo-shell-view-actions.c17
-rw-r--r--modules/calendar/e-task-shell-view-actions.c17
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