[evolution-ews] Re-add foreign calendar/tasks/book sources on initial collection setup
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-ews] Re-add foreign calendar/tasks/book sources on initial collection setup
- Date: Thu, 16 Aug 2012 09:49:45 +0000 (UTC)
commit 6bfef6f768c461956a33c61116259ff0c0786428
Author: Milan Crha <mcrha redhat com>
Date: Thu Aug 16 11:38:23 2012 +0200
Re-add foreign calendar/tasks/book sources on initial collection setup
src/collection/e-ews-backend.c | 31 +++++++++++++++++++++++++++++++
1 files changed, 31 insertions(+), 0 deletions(-)
---
diff --git a/src/collection/e-ews-backend.c b/src/collection/e-ews-backend.c
index 907c46f..11704ee 100644
--- a/src/collection/e-ews-backend.c
+++ b/src/collection/e-ews-backend.c
@@ -454,6 +454,35 @@ ews_backend_source_changed_cb (ESource *source,
ews_backend_add_gal_source (backend);
}
+static void
+add_remote_sources (EEwsBackend *backend)
+{
+ GList *old_sources, *iter;
+ ESourceRegistryServer *registry;
+
+ registry = e_collection_backend_ref_server (E_COLLECTION_BACKEND (backend));
+ old_sources = e_collection_backend_claim_all_resources (E_COLLECTION_BACKEND (backend));
+ for (iter = old_sources; iter; iter = iter->next) {
+ ESource *source = iter->data;
+ ESourceEwsFolder *extension;
+
+ if (!e_source_has_extension (source, E_SOURCE_EXTENSION_EWS_FOLDER))
+ continue;
+
+ /* foreign folders are just added */
+ extension = e_source_get_extension (source, E_SOURCE_EXTENSION_EWS_FOLDER);
+ if (e_source_ews_folder_get_foreign (extension)) {
+ e_server_side_source_set_writable (
+ E_SERVER_SIDE_SOURCE (source), TRUE);
+ e_server_side_source_set_remote_deletable (
+ E_SERVER_SIDE_SOURCE (source), TRUE);
+ e_source_registry_server_add_source (registry, source);
+ }
+ }
+ g_list_free_full (old_sources, g_object_unref);
+ g_object_unref (registry);
+}
+
static gboolean
ews_backend_sync_folders_idle_cb (gpointer user_data)
{
@@ -466,6 +495,8 @@ ews_backend_sync_folders_idle_cb (gpointer user_data)
ews_backend_sync_created_folders (
closure->backend, closure->folders_created);
+ add_remote_sources (closure->backend);
+
return FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]