aboutsummaryrefslogtreecommitdiffstats
path: root/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'calendar')
-rw-r--r--calendar/gui/e-cal-model.c19
-rw-r--r--calendar/gui/e-cal-model.h2
2 files changed, 17 insertions, 4 deletions
diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c
index b74485b28a..16c968d704 100644
--- a/calendar/gui/e-cal-model.c
+++ b/calendar/gui/e-cal-model.c
@@ -3578,21 +3578,34 @@ remove_client (ECalModel *model,
/**
* e_cal_model_remove_client
+ * @model: an #ECalModel
+ * @client: an #ECalClient
+ *
+ * Removes @client from @model along with its internal #ECalClientView.
+ *
+ * If @model does not have @client then the function does nothing and
+ * returns %FALSE.
+ *
+ * Returns: %TRUE is @client was remove, %FALSE if @model did not have it
*/
-void
+gboolean
e_cal_model_remove_client (ECalModel *model,
ECalClient *client)
{
ClientData *client_data;
+ gboolean removed = FALSE;
- g_return_if_fail (E_IS_CAL_MODEL (model));
- g_return_if_fail (E_IS_CAL_CLIENT (client));
+ g_return_val_if_fail (E_IS_CAL_MODEL (model), FALSE);
+ g_return_val_if_fail (E_IS_CAL_CLIENT (client), FALSE);
client_data = cal_model_clients_lookup (model, client);
if (client_data != NULL) {
remove_client (model, client_data);
client_data_unref (client_data);
+ removed = TRUE;
}
+
+ return removed;
}
/**
diff --git a/calendar/gui/e-cal-model.h b/calendar/gui/e-cal-model.h
index 407195117a..602db1cae4 100644
--- a/calendar/gui/e-cal-model.h
+++ b/calendar/gui/e-cal-model.h
@@ -256,7 +256,7 @@ void e_cal_model_set_default_client (ECalModel *model,
GList * e_cal_model_list_clients (ECalModel *model);
gboolean e_cal_model_add_client (ECalModel *model,
ECalClient *cal_client);
-void e_cal_model_remove_client (ECalModel *model,
+gboolean e_cal_model_remove_client (ECalModel *model,
ECalClient *cal_client);
void e_cal_model_remove_all_clients (ECalModel *model);
void e_cal_model_get_time_range (ECalModel *model,