diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2013-04-13 02:54:15 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2013-04-13 06:35:11 +0800 |
commit | 1df4952769b3211b90aecb3a359d8ae484fd1363 (patch) | |
tree | f8b5c085d0da5f2127bf1794250e2144cfc1e31f | |
parent | 1141e231478410ecd83c78507612e57f58f2ccf1 (diff) | |
download | gsoc2013-evolution-1df4952769b3211b90aecb3a359d8ae484fd1363.tar.gz gsoc2013-evolution-1df4952769b3211b90aecb3a359d8ae484fd1363.tar.zst gsoc2013-evolution-1df4952769b3211b90aecb3a359d8ae484fd1363.zip |
Remove e_cal_model_get_client_for_source().
Was not thread-safe because it did not reference the return value.
The function was only used to implement the Refresh action on the
sidebar menu. e_client_selector_ref_cached_client() works better
for this anyway.
-rw-r--r-- | calendar/gui/e-cal-model.c | 36 | ||||
-rw-r--r-- | calendar/gui/e-cal-model.h | 3 | ||||
-rw-r--r-- | modules/calendar/e-cal-shell-view-actions.c | 23 | ||||
-rw-r--r-- | modules/calendar/e-memo-shell-view-actions.c | 23 | ||||
-rw-r--r-- | modules/calendar/e-task-shell-view-actions.c | 23 |
5 files changed, 30 insertions, 78 deletions
diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c index d990bdbaf0..62c9188077 100644 --- a/calendar/gui/e-cal-model.c +++ b/calendar/gui/e-cal-model.c @@ -2653,42 +2653,6 @@ e_cal_model_list_clients (ECalModel *model) return g_queue_peek_head_link (&results); } -/** - * e_cal_model_get_client_for_source: - * @model: an #ECalModel - * @source: an #ESource - */ -ECalClient * -e_cal_model_get_client_for_source (ECalModel *model, - ESource *source) -{ - ECalClient *match = NULL; - GList *list, *link; - - g_return_val_if_fail (E_IS_CAL_MODEL (model), NULL); - g_return_val_if_fail (E_IS_SOURCE (source), NULL); - - list = cal_model_clients_list (model); - - for (link = list; link != NULL; link = g_list_next (link)) { - ClientData *client_data = link->data; - ESource *client_source; - EClient *client; - - client = E_CLIENT (client_data->client); - client_source = e_client_get_source (client); - - if (e_source_equal (source, client_source)) { - match = client_data->client; - break; - } - } - - g_list_free_full (list, (GDestroyNotify) client_data_unref); - - return match; -} - static ECalModelComponent * search_by_id_and_client (ECalModelPrivate *priv, ECalClient *client, diff --git a/calendar/gui/e-cal-model.h b/calendar/gui/e-cal-model.h index 3827f25b18..f42ddd2937 100644 --- a/calendar/gui/e-cal-model.h +++ b/calendar/gui/e-cal-model.h @@ -254,9 +254,6 @@ ECalClient * e_cal_model_get_default_client (ECalModel *model); void e_cal_model_set_default_client (ECalModel *model, ECalClient *client); GList * e_cal_model_list_clients (ECalModel *model); -ECalClient * e_cal_model_get_client_for_source - (ECalModel *model, - ESource *source); void e_cal_model_add_client (ECalModel *model, ECalClient *cal_client); void e_cal_model_remove_client (ECalModel *model, diff --git a/modules/calendar/e-cal-shell-view-actions.c b/modules/calendar/e-cal-shell-view-actions.c index f9fdf1caf1..9a54b0603f 100644 --- a/modules/calendar/e-cal-shell-view-actions.c +++ b/modules/calendar/e-cal-shell-view-actions.c @@ -371,32 +371,29 @@ static void action_calendar_refresh_cb (GtkAction *action, ECalShellView *cal_shell_view) { - ECalShellContent *cal_shell_content; ECalShellSidebar *cal_shell_sidebar; ESourceSelector *selector; - ECalClient *client; - ECalModel *model; + EClient *client = NULL; ESource *source; GError *error = NULL; - cal_shell_content = cal_shell_view->priv->cal_shell_content; cal_shell_sidebar = cal_shell_view->priv->cal_shell_sidebar; - - model = e_cal_shell_content_get_model (cal_shell_content); selector = e_cal_shell_sidebar_get_selector (cal_shell_sidebar); source = e_source_selector_ref_primary_selection (selector); - g_return_if_fail (source != NULL); - client = e_cal_model_get_client_for_source (model, source); - if (client == NULL) { + if (source != NULL) { + client = e_client_selector_ref_cached_client ( + E_CLIENT_SELECTOR (selector), source); g_object_unref (source); - return; } - g_return_if_fail (e_client_check_refresh_supported (E_CLIENT (client))); + if (client == NULL) + return; - e_client_refresh_sync (E_CLIENT (client), NULL, &error); + g_return_if_fail (e_client_check_refresh_supported (client)); + + e_client_refresh_sync (client, NULL, &error); if (error != NULL) { g_warning ( @@ -406,7 +403,7 @@ action_calendar_refresh_cb (GtkAction *action, g_error_free (error); } - g_object_unref (source); + g_object_unref (client); } static void diff --git a/modules/calendar/e-memo-shell-view-actions.c b/modules/calendar/e-memo-shell-view-actions.c index 0e0d28e885..5e30e24fcf 100644 --- a/modules/calendar/e-memo-shell-view-actions.c +++ b/modules/calendar/e-memo-shell-view-actions.c @@ -294,32 +294,29 @@ static void action_memo_list_refresh_cb (GtkAction *action, EMemoShellView *memo_shell_view) { - EMemoShellContent *memo_shell_content; EMemoShellSidebar *memo_shell_sidebar; ESourceSelector *selector; - ECalClient *client; - ECalModel *model; + EClient *client = NULL; ESource *source; GError *error = NULL; - memo_shell_content = memo_shell_view->priv->memo_shell_content; memo_shell_sidebar = memo_shell_view->priv->memo_shell_sidebar; - - model = e_memo_shell_content_get_memo_model (memo_shell_content); selector = e_memo_shell_sidebar_get_selector (memo_shell_sidebar); source = e_source_selector_ref_primary_selection (selector); - g_return_if_fail (source != NULL); - client = e_cal_model_get_client_for_source (model, source); - if (client == NULL) { + if (source != NULL) { + client = e_client_selector_ref_cached_client ( + E_CLIENT_SELECTOR (selector), source); g_object_unref (source); - return; } - g_return_if_fail (e_client_check_refresh_supported (E_CLIENT (client))); + if (client == NULL) + return; - e_client_refresh_sync (E_CLIENT (client), NULL, &error); + g_return_if_fail (e_client_check_refresh_supported (client)); + + e_client_refresh_sync (client, NULL, &error); if (error != NULL) { g_warning ( @@ -329,7 +326,7 @@ action_memo_list_refresh_cb (GtkAction *action, g_error_free (error); } - g_object_unref (source); + g_object_unref (client); } static void diff --git a/modules/calendar/e-task-shell-view-actions.c b/modules/calendar/e-task-shell-view-actions.c index 6709a6e7d7..0c3ab2e040 100644 --- a/modules/calendar/e-task-shell-view-actions.c +++ b/modules/calendar/e-task-shell-view-actions.c @@ -317,32 +317,29 @@ static void action_task_list_refresh_cb (GtkAction *action, ETaskShellView *task_shell_view) { - ETaskShellContent *task_shell_content; ETaskShellSidebar *task_shell_sidebar; ESourceSelector *selector; - ECalClient *client; - ECalModel *model; + EClient *client = NULL; ESource *source; GError *error = NULL; - task_shell_content = task_shell_view->priv->task_shell_content; task_shell_sidebar = task_shell_view->priv->task_shell_sidebar; - - model = e_task_shell_content_get_task_model (task_shell_content); selector = e_task_shell_sidebar_get_selector (task_shell_sidebar); source = e_source_selector_ref_primary_selection (selector); - g_return_if_fail (source != NULL); - client = e_cal_model_get_client_for_source (model, source); - if (client == NULL) { + if (source != NULL) { + client = e_client_selector_ref_cached_client ( + E_CLIENT_SELECTOR (selector), source); g_object_unref (source); - return; } - g_return_if_fail (e_client_check_refresh_supported (E_CLIENT (client))); + if (client == NULL) + return; - e_client_refresh_sync (E_CLIENT (client), NULL, &error); + g_return_if_fail (e_client_check_refresh_supported (client)); + + e_client_refresh_sync (client, NULL, &error); if (error != NULL) { g_warning ( @@ -352,7 +349,7 @@ action_task_list_refresh_cb (GtkAction *action, g_error_free (error); } - g_object_unref (source); + g_object_unref (client); } static void |