diff options
Diffstat (limited to 'debian/patches/port-eds-3.5.patch')
-rw-r--r-- | debian/patches/port-eds-3.5.patch | 248 |
1 files changed, 0 insertions, 248 deletions
diff --git a/debian/patches/port-eds-3.5.patch b/debian/patches/port-eds-3.5.patch deleted file mode 100644 index 805855f..0000000 --- a/debian/patches/port-eds-3.5.patch +++ /dev/null @@ -1,248 +0,0 @@ -From: Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com> -Subject: Update to evolution-data-server 3.5 API. - ---- - src/datetime-service.c | 176 +++++++++++++++++++++++-------------------------- - 1 file changed, 84 insertions(+), 92 deletions(-) - -Index: b/src/datetime-service.c -=================================================================== ---- a/src/datetime-service.c -+++ b/src/datetime-service.c -@@ -40,11 +40,9 @@ with this program. If not, see <http:// - #include <geoclue/geoclue-master-client.h> - - #include <time.h> --#include <libecal/e-cal.h> -+#include <libecal/libecal.h> - #include <libical/ical.h> --#include <libecal/e-cal-time-util.h> --#include <libedataserver/e-source.h> --#include <libedataserverui/e-passwords.h> -+#include <libedataserver/libedataserver.h> - // Other users of ecal seem to also include these, not sure why they should be included by the above - #include <libical/icaltime.h> - #include <cairo/cairo.h> -@@ -594,27 +592,6 @@ check_for_calendar (gpointer user_data) - return FALSE; - } - --// Authentication function --static gchar * --auth_func (ECal *ecal, -- const gchar *prompt, -- const gchar *key, -- gpointer user_data) --{ -- ESource *source = e_cal_get_source (ecal); -- gchar *auth_domain = e_source_get_duped_property (source, "auth-domain"); -- -- const gchar *component_name; -- if (auth_domain) component_name = auth_domain; -- else component_name = "Calendar"; -- -- gchar *password = e_passwords_get_password (component_name, key); -- -- g_free (auth_domain); -- -- return password; --} -- - static gint - compare_comp_instances (gconstpointer ga, gconstpointer gb) - { -@@ -649,23 +626,53 @@ comp_instance_free (struct comp_instance - } - - static gboolean --populate_appointment_instances (ECalComponent * comp, -+populate_appointment_instances (ECalClient * client, - time_t start, - time_t end, - gpointer data) - { -- g_debug("Appending item %p", comp); -- -- ECalComponentVType vtype = e_cal_component_get_vtype (comp); -- if (vtype != E_CAL_COMPONENT_EVENT && vtype != E_CAL_COMPONENT_TODO) return FALSE; -- -- icalproperty_status status; -- e_cal_component_get_status (comp, &status); -- if (status == ICAL_STATUS_COMPLETED || status == ICAL_STATUS_CANCELLED) return FALSE; -+ GSList *ecalcomps, *comp_item; - -- struct comp_instance *ci = comp_instance_new (comp, start, end, E_SOURCE(data)); -- comp_instances = g_list_append (comp_instances, ci); -- return TRUE; -+ if (e_cal_client_get_object_list_as_comps_sync (client, -+ NULL, -+ &ecalcomps, -+ NULL, NULL)) { -+ -+ for (comp_item = ecalcomps; comp_item; comp_item = g_slist_next(comp_item)) { -+ ECalComponent *comp = comp_item->data; -+ -+ g_debug("Appending item %p", e_cal_component_get_as_string(comp)); -+ -+ ECalComponentVType vtype = e_cal_component_get_vtype (comp); -+ if (vtype != E_CAL_COMPONENT_EVENT && vtype != E_CAL_COMPONENT_TODO) return FALSE; -+ -+ icalproperty_status status; -+ e_cal_component_get_status (comp, &status); -+ if (status == ICAL_STATUS_COMPLETED || status == ICAL_STATUS_CANCELLED) return FALSE; -+ -+ g_object_ref(comp); -+ -+ ECalComponentDateTime datetime; -+ icaltimezone *appointment_zone = NULL; -+ icaltimezone *current_zone = NULL; -+ -+ if (vtype == E_CAL_COMPONENT_EVENT) -+ e_cal_component_get_dtstart (comp, &datetime); -+ else -+ e_cal_component_get_due (comp, &datetime); -+ -+ appointment_zone = icaltimezone_get_builtin_timezone_from_tzid(datetime.tzid); -+ current_zone = icaltimezone_get_builtin_timezone_from_tzid(current_timezone); -+ if (!appointment_zone || datetime.value->is_date) { // If it's today put in the current timezone? -+ appointment_zone = current_zone; -+ } -+ -+ struct comp_instance *ci = comp_instance_new (comp, start, end, E_SOURCE(data)); -+ comp_instances = g_list_append (comp_instances, ci); -+ } -+ return TRUE; -+ } -+ return FALSE; - } - - /* Populate the menu with todays, next 5 appointments. -@@ -685,12 +692,12 @@ update_appointment_menu_items (gpointer - updating_appointments = TRUE; - - time_t curtime = 0, t1 = 0, t2 = 0; -- GList *l; -- GSList *g; -+ GList *l, *s; - GError *gerror = NULL; - gint i; - gint width = 0, height = 0; -- ESourceList * sources = NULL; -+ ESourceRegistry * src_registry = NULL; -+ GList * sources = NULL; - - // Get today & work out query times - time(&curtime); -@@ -730,67 +737,52 @@ update_appointment_menu_items (gpointer - highlightdays = highlightdays + 7; // Minimum of 7 days ahead - t2 = t1 + (time_t) (highlightdays * 24 * 60 * 60); - -- if (!e_cal_get_sources(&sources, E_CAL_SOURCE_TYPE_EVENT, &gerror)) { -- g_debug("Failed to get ecal sources\n"); -- g_clear_error (&gerror); -- return FALSE; -- } -- - // clear any previous comp_instances - g_list_free_full (comp_instances, (GDestroyNotify)comp_instance_free); - comp_instances = NULL; - -- GSList *cal_list = gconf_client_get_list(gconf, "/apps/evolution/calendar/display/selected_calendars", GCONF_VALUE_STRING, &gerror); -- if (gerror) { -- g_debug("Failed to get evolution preference for enabled calendars"); -- g_clear_error (&gerror); -- cal_list = NULL; -- } -- -+ src_registry = e_source_registry_new_sync (NULL, &gerror); -+ if (!src_registry) { -+ g_debug("Failed to get access to source registry: %s\n", gerror->message); -+ return FALSE; -+ } -+ -+ sources = e_source_registry_list_sources(src_registry, E_SOURCE_EXTENSION_CALENDAR); -+ - // Generate instances for all sources -- for (g = e_source_list_peek_groups (sources); g; g = g->next) { -- ESourceGroup *group = E_SOURCE_GROUP (g->data); -- GSList *s; -- -- for (s = e_source_group_peek_sources (group); s; s = s->next) { -- ESource *source = E_SOURCE (s->data); -- g_signal_connect (G_OBJECT(source), "changed", G_CALLBACK (update_appointment_menu_items), NULL); -- ECal *ecal = e_cal_new(source, E_CAL_SOURCE_TYPE_EVENT); -- e_cal_set_auth_func (ecal, (ECalAuthFunc) auth_func, NULL); -- -- icaltimezone* current_zone = icaltimezone_get_builtin_timezone(current_timezone); -- if (!current_zone) { -- // current_timezone may be a TZID? -- current_zone = icaltimezone_get_builtin_timezone_from_tzid(current_timezone); -- } -- if (current_zone && !e_cal_set_default_timezone(ecal, current_zone, &gerror)) { -- g_debug("Failed to set ecal default timezone %s", gerror->message); -- g_clear_error (&gerror); -- g_object_unref(ecal); -- continue; -- } -- -- if (!e_cal_open(ecal, FALSE, &gerror)) { -- g_debug("Failed to get ecal sources %s", gerror->message); -- g_clear_error (&gerror); -- g_object_unref(ecal); -- continue; -- } -+ for (s = g_list_first (sources); s; s = g_list_next (s)) { - -- const gchar *ecal_uid = e_source_peek_uid(source); -- g_debug("Checking ecal_uid is enabled: %s", ecal_uid); -- const gboolean in_list = g_slist_find_custom (cal_list, ecal_uid, (GCompareFunc)g_strcmp0) != NULL; -- if (!in_list) { -+ ESource *source = E_SOURCE (s->data); -+ g_signal_connect (G_OBJECT(source), "changed", G_CALLBACK (update_appointment_menu_items), NULL); -+ ECalClient *ecal = e_cal_client_new(source, E_CAL_CLIENT_SOURCE_TYPE_EVENTS, &gerror); -+ -+ icaltimezone* current_zone = icaltimezone_get_builtin_timezone(current_timezone); -+ if (!current_zone) { -+ // current_timezone may be a TZID? -+ current_zone = icaltimezone_get_builtin_timezone_from_tzid(current_timezone); -+ } -+ -+ e_cal_client_set_default_timezone (ecal, current_zone); -+ -+ g_debug("Checking if source %s is enabled", e_source_get_uid(source)); -+ if (e_source_get_enabled (source)) { -+ g_debug("source is enabled, generating instances"); -+ -+ if (!e_client_open_sync (E_CLIENT (ecal), TRUE, NULL, &gerror)) { -+ g_debug("Failed to open source: %s", gerror->message); -+ g_clear_error (&gerror); - g_object_unref(ecal); - continue; - } - -- g_debug("ecal_uid is enabled, generating instances"); -- e_cal_generate_instances (ecal, t1, t2, (ECalRecurInstanceFn) populate_appointment_instances, source); -- g_object_unref(ecal); -- } -- } -- g_slist_free_full (cal_list, g_free); -+ e_cal_client_generate_instances (ecal, t1, t2, NULL, -+ (ECalRecurInstanceFn) populate_appointment_instances, -+ (gpointer) source, -+ NULL); -+ } -+ g_object_unref(ecal); -+ } -+ g_list_free_full (sources, g_object_unref); - - g_debug("Number of ECalComponents returned: %d", g_list_length(comp_instances)); - GList *sorted_comp_instances = g_list_sort(comp_instances, compare_comp_instances); -@@ -942,7 +934,7 @@ update_appointment_menu_items (gpointer - G_CALLBACK(activate_cb), cmd, (GClosureNotify)g_free, 0); - g_free (ad); - -- const gchar *color_spec = e_source_peek_color_spec(ci->source); -+ const gchar *color_spec = e_source_selectable_get_color (e_source_get_extension (ci->source, E_SOURCE_EXTENSION_CALENDAR)); - g_debug("Colour to use: %s", color_spec); - - // Draw the correct icon for the appointment type and then tint it using mask fill. |