[evolution-ews] Bug 782826 - Allow adding Free/Busy as a foreign Calendar ][



commit 1ad1e92026b7fd6debcbf22d1a20eedf30feb285
Author: Milan Crha <mcrha redhat com>
Date:   Mon Aug 21 15:48:31 2017 +0200

    Bug 782826 - Allow adding Free/Busy as a foreign Calendar ][

 src/calendar/e-cal-backend-ews.c                   |    2 +-
 src/configuration/e-ews-subscribe-foreign-folder.c |    7 ++++++-
 2 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/src/calendar/e-cal-backend-ews.c b/src/calendar/e-cal-backend-ews.c
index 3fe7e0b..c1fccfb 100644
--- a/src/calendar/e-cal-backend-ews.c
+++ b/src/calendar/e-cal-backend-ews.c
@@ -1376,7 +1376,7 @@ ecb_ews_connect_sync (ECalMetaBackend *meta_backend,
 
                g_free (cbews->priv->folder_id);
                cbews->priv->folder_id = e_source_ews_folder_dup_id (ews_folder);
-               cbews->priv->is_freebusy_calendar = g_strcmp0 (cbews->priv->folder_id, "freebusy-calendar") 
== 0;
+               cbews->priv->is_freebusy_calendar = cbews->priv->folder_id && g_str_has_prefix 
(cbews->priv->folder_id, "freebusy-calendar::");
 
                g_signal_connect_swapped (cbews->priv->cnc, "server-notification",
                        G_CALLBACK (ecb_ews_server_notification_cb), cbews);
diff --git a/src/configuration/e-ews-subscribe-foreign-folder.c 
b/src/configuration/e-ews-subscribe-foreign-folder.c
index f619355..76c5d4a 100644
--- a/src/configuration/e-ews-subscribe-foreign-folder.c
+++ b/src/configuration/e-ews-subscribe-foreign-folder.c
@@ -347,6 +347,7 @@ check_foreign_folder_thread (GObject *with_object,
        if (g_strcmp0 (cffd->use_foldername, "freebusy-calendar") == 0) {
                EEWSFreeBusyData fbdata;
                GSList *free_busy = NULL;
+               gchar *tmp;
                gboolean success;
 
                fbdata.period_start = time (NULL);
@@ -365,12 +366,16 @@ check_foreign_folder_thread (GObject *with_object,
                        return;
                }
 
+               tmp = g_strconcat (cffd->use_foldername, "::", cffd->email, NULL);
+
                folder = g_object_new (E_TYPE_EWS_FOLDER, NULL);
-               e_ews_folder_set_id (folder, e_ews_folder_id_new (cffd->use_foldername, NULL, FALSE));
+               e_ews_folder_set_id (folder, e_ews_folder_id_new (tmp, NULL, FALSE));
                /* Translators: This is used as a calendar name; it constructs "User Name - Availability" 
string shown in UI */
                e_ews_folder_set_name (folder, _("Availability"));
                e_ews_folder_set_folder_type (folder, E_EWS_FOLDER_TYPE_CALENDAR);
                e_ews_folder_set_foreign_mail (folder, cffd->email);
+
+               g_free (tmp);
        } else {
                fid.id = (gchar *) (cffd->use_foldername ? cffd->use_foldername : cffd->orig_foldername);
                fid.change_key = NULL;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]