aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2009-09-22 19:46:44 +0800
committerMatthew Barnes <mbarnes@redhat.com>2009-09-22 19:48:11 +0800
commit5a80f92d37e7e8a814f70f826b7b33f5d21b0f72 (patch)
tree5442179392c4eed8948fb90e2939fffaaa7ca725
parentb1cbbd1833180a1399ee9c71c7208f3a6d278c4d (diff)
downloadgsoc2013-evolution-5a80f92d37e7e8a814f70f826b7b33f5d21b0f72.tar.gz
gsoc2013-evolution-5a80f92d37e7e8a814f70f826b7b33f5d21b0f72.tar.zst
gsoc2013-evolution-5a80f92d37e7e8a814f70f826b7b33f5d21b0f72.zip
Kill the ipod-sync plugin, along with the HAL dependency.
-rw-r--r--configure.ac18
-rw-r--r--plugins/ipod-sync/ChangeLog187
-rw-r--r--plugins/ipod-sync/Makefile.am30
-rw-r--r--plugins/ipod-sync/evolution-ipod-sync.c105
-rw-r--r--plugins/ipod-sync/evolution-ipod-sync.h37
-rw-r--r--plugins/ipod-sync/format-handler.h52
-rw-r--r--plugins/ipod-sync/ical-format.c126
-rw-r--r--plugins/ipod-sync/ipod-sync.c267
-rw-r--r--plugins/ipod-sync/ipod.c256
-rw-r--r--plugins/ipod-sync/org-gnome-ipod-sync-evolution.eplug.xml26
-rw-r--r--plugins/ipod-sync/sync.c453
-rw-r--r--po/POTFILES.in3
12 files changed, 3 insertions, 1557 deletions
diff --git a/configure.ac b/configure.ac
index a188caf309..5ba9b0235c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1395,16 +1395,6 @@ dnl ********************************
FULL_GNOME_DEPS="gconf-2.0 gthread-2.0 gobject-2.0 libglade-2.0"
-PKG_CHECK_MODULES([HAL], [hal >= hal_minimum_version], [HAVE_HAL="yes"], [HAVE_HAL="no"])
-if test "x$HAVE_HAL" = "xyes"; then
- AC_DEFINE(HAVE_HAL, 1, [hal available])
- HAL_REQUIREMENT="hal"
- IPOD_SYNC="ipod-sync"
-else
- HAL_REQUIREMENT=""
- IPOD_SYNC=""
-fi
-
dnl ******************************
dnl TNEF implementation
dnl ******************************
@@ -1767,8 +1757,8 @@ plugins_standard="$plugins_standard_always"
all_plugins_standard="$plugins_standard"
plugins_experimental_always="face external-editor hula-account-setup"
-plugins_experimental="$plugins_experimental_always $IPOD_SYNC $TNEF_ATTACHMENTS"
-all_plugins_experimental="$plugins_experimental_always ipod-sync tnef-attachments"
+plugins_experimental="$plugins_experimental_always $TNEF_ATTACHMENTS"
+all_plugins_experimental="$plugins_experimental_always tnef-attachments"
case x"$enable_plugins" in
xno)
@@ -1794,7 +1784,7 @@ xexperimental)
esac
dnl Temporary KILL-BONOBO hack
-for broken_plugin in exchange-operations groupwise-features ipod-sync
+for broken_plugin in exchange-operations groupwise-features
do
if echo ${plugins_enabled} | grep "$broken_plugin" > /dev/null
then
@@ -2047,7 +2037,6 @@ plugins/groupwise-account-setup/Makefile
plugins/groupwise-features/Makefile
plugins/hula-account-setup/Makefile
plugins/imap-features/Makefile
-plugins/ipod-sync/Makefile
plugins/itip-formatter/Makefile
plugins/mail-notification/Makefile
plugins/mail-to-task/Makefile
@@ -2090,7 +2079,6 @@ fi
echo "
LDAP support: $msg_ldap
- HAL: $HAVE_HAL
NetworkManager: $NM_SUPPORT
NNTP support: $msg_nntp
Pilot conduits: $msg_pilot
diff --git a/plugins/ipod-sync/ChangeLog b/plugins/ipod-sync/ChangeLog
deleted file mode 100644
index be39031895..0000000000
--- a/plugins/ipod-sync/ChangeLog
+++ /dev/null
@@ -1,187 +0,0 @@
-2009-01-21 Suman Manjunath <msuman@novell.com>
-
- ** Fix for bug #541209
-
- ** Adapt to the new APIs from upstream libical. Changes made include
- using the "_r" counterpart for the following APIs:
- + icalproperty_as_ical_string ()
- + icalvalue_as_ical_string ()
- + icalcomponent_as_ical_string ()
- + icalparameter_as_ical_string ()
- + icaldurationtype_as_ical_string ()
- + icalenum_reqstat_code ()
- + icallangbind_property_eval_string ()
- + icallangbind_quote_as_ical ()
- + icalmime_text_end_part ()
- + icalperiodtype_as_ical_string ()
- + icalproperty_enum_to_string ()
- + icalproperty_get_parameter_as_string ()
- + icalproperty_get_value_as_string ()
- + icalproperty_get_property_name ()
- + icalrecurrencetype_as_string ()
- + icaltime_as_ical_string ()
- + icalreqstattype_as_string ()
- + icalvalue_binary_as_ical_string ()
- + icalvalue_int_as_ical_string ()
- + icalvalue_utcoffset_as_ical_string ()
- + icalvalue_string_as_ical_string ()
- + icalvalue_recur_as_ical_string ()
- + icalvalue_text_as_ical_string ()
- + icalvalue_attach_as_ical_string ()
- + icalvalue_duration_as_ical_string ()
- + icalvalue_date_as_ical_string ()
- + icalvalue_datetime_as_ical_string ()
- + icalvalue_float_as_ical_string ()
- + icalvalue_geo_as_ical_string ()
- + icalvalue_datetimeperiod_as_ical_string ()
- + icalvalue_period_as_ical_string ()
- + icalvalue_trigger_as_ical_string ()
- + icalvalue_as_ical_string ()
-
- * ical-format.c (do_save_calendar_ical):
-
-2008-09-19 Sankar P <psankar@novell.com>
-
-License Changes
-
- * evolution-ipod-sync.c:
-
-2008-09-16 Sankar P <psankar@novell.com>
-
-License Changes
-
- * ical-format.c:
- * ipod-sync.c:
-
-2008-09-12 Sankar P <psankar@novell.com>
-
-License Changes
-
- * sync.c:
-
-2008-09-02 Sankar P <psankar@novell.com>
-
-License Changes
-
- * evolution-ipod-sync.h:
- * ipod.c:
-
-2008-08-27 Philip Withnall <philip@tecnocode.co.uk>
-
- ** Fix for bug #534762
-
- * org-gnome-ipod-sync-evolution.eplug.xml: Change "addressbook" to
- "address book" in translatable strings.
-
-2008-08-27 Sankar P <psankar@novell.com>
-
-License Changes
-
- * format-handler.h:
-
-2008-08-12 Milan Crha <mcrha@redhat.com>
-
- * ipod-sync.c: Added missing include.
-
-2008-04-19 Matthew Barnes <mbarnes@redhat.com>
-
- * ical-fomat.c (do_save_calendar_ical):
- * ipod-sync.c (open_for_writing), (destination_save_addressbook):
- Fix some compilation errors.
-
-2008-04-17 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #526739
-
- * ical-format.c: (do_save_calendar_ical):
- * ipod-sync.c: (destination_save_addressbook):
- Write to gio GOutputStream instead of gnome-vfs handle.
- * format-handler.h: (open_for_writing):
- * ipod-sync.c: (open_for_writing): New helper function.
-
-2008-01-07 João Vale <jpvale@gmail.com>
-
- ** Fix for bug #375580
-
- * ipod-sync.c: (destination_save_addressbook): Use ISO-8859-1 encoding
- to store contacts in iPod.
-
-2007-11-11 Gilles Dartiguelongue <gdartigu@svn.gnome.org>
-
- ** Fix bug #495872
-
- * ipod-sync.c: (org_gnome_sync_memos):
- * org-gnome-ipod-sync-evolution.eplug.xml:
- * sync.c: (export_memos), (export_to_ipod):
- add memo support
-
-2007-10-26 Kjartan Maraas <kmaraas@gnome.org>
-
- * evolution-ipod-sync.c: (ipod_check_status): Don't mix code
- and declarations.
-
-2007-09-14 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #476231
-
- * ical-format.c:
- Remove non-USE_GTKFILECHOOSER code.
- GtkFileChooser has been around since 2004.
-
-2007-06-07 Gilles Dartiguelongue <dartigug@esiee.fr>
-
- * evolution-ipod-sync.c: (ipod_get_mount):
- * evolution-ipod-sync.h:
- * ipod.c: (try_mount), (try_umount): more compilation
- warnings cleanup, completes bug #437584 fixes. Removes
- hopefully useless code in headers.
-
-2007-05-14 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #375234 from Vitaliy Ischenko
-
- * ipod.c: (find_ipod_mount_point):
-
-2007-04-10 Andre Klapper <a9016009@gmx.de>
-
- * plugins/ipod-sync/evolution-ipod-sync.c:
- fix typos and reword a string. Fixes bug #404764.
-
-2007-04-02 Sankar P <psankar@novell.com>
-
- * Committed on behalf of Gilles Dartiguelongue <dartigug@esiee.fr>
-
- * org-gnome-ipod-sync-evolution.eplug.xml:
- Cleanup.
- Fixes part of #301149
-
-2007-01-27 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
-
- * evolution-ipod-sync.c: (ipod_check_status):
- mark strings as translatable. See bug #399381 for details.
-
-2006-05-13 Harish Krishnaswamy <kharish@novell.com>
-
- * Makefile.am : Add evolution-ipod-sync.h to dist.
- Fixes #350388.
-
-2006-05-13 Harish Krishnaswamy <kharish@novell.com>
-
- patch submitted by: Hiroyuki Ikezoe
-
- * ipod.c: Remove compiler warning. Fixes 341606.
-
-2006-05-08 Srinivasa Ragavan <sragavan@novell.com>
-
- * ipod-sync.c: (destination_save_addressbook),
- (destination_save_cal), (org_gnome_sync_calendar),
- (org_gnome_sync_tasks), (org_gnome_sync_addressbook): Added support
- for multiple addressbook/calendar/task support for iPod.
-
-2005-10-18 Srinivasa Ragavan <sragavan@novell.com>
-
- * Created the iPod sync plugin. It based on Justin Wakes bounty
- work and rodrigo's save calendar plugin.
-
-
-
diff --git a/plugins/ipod-sync/Makefile.am b/plugins/ipod-sync/Makefile.am
deleted file mode 100644
index 74522a41a3..0000000000
--- a/plugins/ipod-sync/Makefile.am
+++ /dev/null
@@ -1,30 +0,0 @@
-AM_CPPFLAGS = \
- -I$(top_srcdir) \
- -I$(top_srcdir)/widgets \
- $(EVOLUTION_CALENDAR_CFLAGS) \
- -DDBUS_API_SUBJECT_TO_CHANGE
-
-@EVO_PLUGIN_RULE@
-
-plugin_DATA = org-gnome-ipod-sync-evolution.eplug
-plugin_LTLIBRARIES = liborg-gnome-ipod-sync-evolution.la
-
-liborg_gnome_ipod_sync_evolution_la_SOURCES = \
- ipod-sync.c \
- ical-format.c \
- evolution-ipod-sync.c \
- ipod.c \
- format-handler.h \
- evolution-ipod-sync.h
-
-liborg_gnome_ipod_sync_evolution_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
-liborg_gnome_ipod_sync_evolution_la_LIBADD = \
- $(EVOLUTION_CALENDAR_LIBS)
-
-
-EXTRA_DIST = org-gnome-ipod-sync-evolution.eplug.xml
-
-BUILT_SOURCES = $(plugin_DATA)
-CLEANFILES = $(BUILT_SOURCES)
-
--include $(top_srcdir)/git.mk
diff --git a/plugins/ipod-sync/evolution-ipod-sync.c b/plugins/ipod-sync/evolution-ipod-sync.c
deleted file mode 100644
index a381e2a80b..0000000000
--- a/plugins/ipod-sync/evolution-ipod-sync.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Evolution->Ipod synchronisation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Authors:
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- * (C)2004 Justin Wake <jwake@iinet.net.au>
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "evolution-ipod-sync.h"
-
-#include <glib/gi18n-lib.h>
-#include <gtk/gtk.h>
-#include <glade/glade.h>
-
-gchar * mount_point = NULL;
-LibHalContext *ctx;
-
-gboolean
-ipod_check_status (gboolean silent)
-{
- LibHalContext *ctx;
- DBusConnection *conn;
-
- if (check_hal () == FALSE)
- {
- if (!silent) {
- GtkWidget *message;
- gchar *msg1;
- msg1 = g_strdup_printf("<span weight=\"bold\" size=\"larger\">%s</span>\n\n", _("Hardware Abstraction Layer not loaded"));
-
- message = gtk_message_dialog_new_with_markup (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
- "%s%s", msg1, _("The \"hald\" service is required but not currently "
- "running. Please enable the service and rerun this "
- "program, or contact your system administrator."));
-
- gtk_dialog_run (GTK_DIALOG (message));
-
- g_free(msg1);
- gtk_widget_destroy (message);
- }
- return FALSE;
-
- }
-
- conn = dbus_bus_get (DBUS_BUS_SYSTEM, NULL);
-
- ctx = libhal_ctx_new ();
- libhal_ctx_set_dbus_connection (ctx, conn);
- if (!libhal_ctx_init(ctx, NULL))
- return FALSE;
-
- mount_point = find_ipod_mount_point (ctx);
-
- if (mount_point == NULL) {
- /* Either the iPod wasn't mounted when we started, or
- * it wasn't plugged in. Either way, we want to umount
- * the iPod when we finish syncing. */
- if (!silent) {
- GtkWidget *message;
- gchar *msg1;
- msg1 = g_strdup_printf("<span weight=\"bold\" size=\"larger\">%s</span>\n\n", _("Search for an iPod failed"));
-
- message = gtk_message_dialog_new_with_markup (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
- "%s%s", msg1, _("Evolution could not find an iPod to synchronize with. "
- "Either the iPod is not connected to the system or it "
- "is not powered on."));
-
- gtk_dialog_run (GTK_DIALOG (message));
-
- g_free(msg1);
- gtk_widget_destroy (message);
- }
-
- return FALSE;
- }
-
- return TRUE;
-}
-
-gchar *
-ipod_get_mount (void)
-{
- return mount_point;
-}
-
diff --git a/plugins/ipod-sync/evolution-ipod-sync.h b/plugins/ipod-sync/evolution-ipod-sync.h
deleted file mode 100644
index 656cf266f1..0000000000
--- a/plugins/ipod-sync/evolution-ipod-sync.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Authors:
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- * Copyright (C) 2004 Justin Wake <jwake@iinet.net.au>
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <dbus/dbus.h>
-#include <dbus/dbus-glib.h>
-#include <libhal.h>
-#include <signal.h>
-
-gboolean check_hal (void);
-gboolean ipod_check_status (gboolean silent);
-gboolean try_umount (gchar *device);
-
-gchar *find_ipod_mount_point (LibHalContext *ctx);
-gchar *ipod_get_mount (void);
-
diff --git a/plugins/ipod-sync/format-handler.h b/plugins/ipod-sync/format-handler.h
deleted file mode 100644
index 4a9207a474..0000000000
--- a/plugins/ipod-sync/format-handler.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Authors:
- * Philip Van Hoof <pvanhoof@gnome.org>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <glib.h>
-#include <gtk/gtk.h>
-#include <gio/gio.h>
-#include <libedataserver/e-source.h>
-#include <libedataserverui/e-source-selector.h>
-#include <libecal/e-cal.h>
-#include <calendar/gui/e-cal-popup.h>
-
-typedef struct _FormatHandler FormatHandler;
-
-struct _FormatHandler
-{
- gboolean isdefault;
- const gchar *combo_label;
- const gchar *filename_ext;
- GtkWidget *options_widget;
-
- gpointer data;
-
- void (*save) (FormatHandler *handler, EPlugin *ep, ECalPopupTargetSource *target, ECalSourceType type, gchar *dest_uri);
-};
-
-FormatHandler *ical_format_handler_new (void);
-
-GOutputStream *open_for_writing (GtkWindow *parent, const gchar *uri, GError **error);
diff --git a/plugins/ipod-sync/ical-format.c b/plugins/ipod-sync/ical-format.c
deleted file mode 100644
index d8961e2520..0000000000
--- a/plugins/ipod-sync/ical-format.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Authors:
- * Rodrigo Moya <rodrigo@novell.com>
- * Philip Van Hoof <pvanhoof@gnome.org>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <gtk/gtk.h>
-#include <glib/gi18n.h>
-#include <libedataserver/e-source.h>
-#include <libedataserverui/e-source-selector.h>
-#include <libecal/e-cal.h>
-#include <libecal/e-cal-util.h>
-#include <calendar/gui/e-cal-popup.h>
-#include <calendar/common/authentication.h>
-#include <string.h>
-
-#include "format-handler.h"
-
-static void
-display_error_message (GtkWidget *parent, const gchar *message)
-{
- GtkWidget *dialog;
-
- dialog = gtk_message_dialog_new (GTK_WINDOW (parent), 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", message);
- gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_destroy (dialog);
-}
-
-static void
-do_save_calendar_ical (FormatHandler *handler, EPlugin *ep, ECalPopupTargetSource *target, ECalSourceType type, gchar *dest_uri)
-{
- ESource *primary_source;
- ECal *source_client;
- GError *error = NULL;
- GList *objects;
- icalcomponent *top_level = NULL;
-
- primary_source = e_source_selector_peek_primary_selection (target->selector);
-
- if (!dest_uri)
- return;
-
- /* open source client */
- source_client = auth_new_cal_from_source (primary_source, type);
- if (!e_cal_open (source_client, TRUE, &error)) {
- display_error_message (gtk_widget_get_toplevel (GTK_WIDGET (target->selector)), error->message);
- g_object_unref (source_client);
- g_error_free (error);
- return;
- }
-
- /* create destination file */
- top_level = e_cal_util_new_top_level ();
-
- error = NULL;
- if (e_cal_get_object_list (source_client, "#t", &objects, &error)) {
- GOutputStream *stream;
-
- while (objects != NULL) {
- icalcomponent *icalcomp = objects->data;
-
- icalcomponent_add_component (top_level, icalcomp);
-
- /* remove item from the list */
- objects = g_list_remove (objects, icalcomp);
- }
-
- /* save the file */
- stream = open_for_writing (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (target->selector))), dest_uri, &error);
-
- if (stream && !error) {
- gchar *ical_str = icalcomponent_as_ical_string_r (top_level);
-
- g_output_stream_write_all (stream, ical_str, strlen (ical_str), NULL, NULL, &error);
- g_output_stream_close (stream, NULL, NULL);
-
- g_free (ical_str);
- }
-
- if (stream)
- g_object_unref (stream);
- }
-
- if (error) {
- display_error_message (gtk_widget_get_toplevel (GTK_WIDGET (target->selector)), error->message);
- g_error_free (error);
- }
-
- /* terminate */
- g_object_unref (source_client);
- icalcomponent_free (top_level);
-}
-
-FormatHandler *ical_format_handler_new (void)
-{
- FormatHandler *handler = g_new (FormatHandler, 1);
-
- handler->isdefault = TRUE;
- handler->combo_label = _("iCalendar format (.ics)");
- handler->filename_ext = ".ics";
- handler->options_widget = NULL;
- handler->save = do_save_calendar_ical;
- handler->data = NULL;
-
- return handler;
-}
diff --git a/plugins/ipod-sync/ipod-sync.c b/plugins/ipod-sync/ipod-sync.c
deleted file mode 100644
index f5672ef1d0..0000000000
--- a/plugins/ipod-sync/ipod-sync.c
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Authors:
- * Srinivasa Ragavan <sragavan@novell.com>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-/* This is written from the save-calendar plugin and James Bowes evo-iPod
- * sync code.
- *
- * This provides eplugin support to sync calendar/task/addressbook with iPod
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <glib.h>
-#include <gio/gio.h>
-#include <glib/gi18n.h>
-#include <unistd.h>
-
-#include <libebook/e-book.h>
-#include <libebook/e-contact.h>
-
-#include <libedataserver/e-source.h>
-#include <libedataserverui/e-source-selector.h>
-#include <libecal/e-cal.h>
-#include <calendar/gui/e-cal-popup.h>
-#include <addressbook/gui/widgets/eab-popup.h>
-#include <string.h>
-
-#include "e-util/e-error.h"
-#include "format-handler.h"
-#include "evolution-ipod-sync.h"
-
-void org_gnome_sync_calendar (EPlugin *ep, ECalPopupTargetSource *target);
-void org_gnome_sync_tasks (EPlugin *ep, ECalPopupTargetSource *target);
-void org_gnome_sync_memos (EPlugin *ep, ECalPopupTargetSource *target);
-void org_gnome_sync_addressbook (EPlugin *ep, EABPopupTargetSource *target);
-
-static void
-display_error_message (GtkWidget *parent, const gchar *message)
-{
- GtkWidget *dialog;
-
- dialog = gtk_message_dialog_new (GTK_WINDOW (parent), 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", message);
- gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_destroy (dialog);
-}
-
-/* Returns output stream for the uri, or NULL on any error.
- When done with the stream, just g_output_stream_close and g_object_unref it.
- It will ask for overwrite if file already exists.
-*/
-GOutputStream *
-open_for_writing (GtkWindow *parent, const gchar *uri, GError **error)
-{
- GFile *file;
- GFileOutputStream *fostream;
- GError *err = NULL;
-
- g_return_val_if_fail (uri != NULL, NULL);
-
- file = g_file_new_for_uri (uri);
-
- g_return_val_if_fail (file != NULL, NULL);
-
- fostream = g_file_create (file, G_FILE_CREATE_NONE, NULL, &err);
-
- if (err && err->code == G_IO_ERROR_EXISTS) {
- g_clear_error (&err);
-
- if (e_error_run (parent, E_ERROR_ASK_FILE_EXISTS_OVERWRITE, uri, NULL) == GTK_RESPONSE_OK) {
- fostream = g_file_replace (file, NULL, FALSE, G_FILE_CREATE_NONE, NULL, &err);
-
- if (err && fostream) {
- g_object_unref (fostream);
- fostream = NULL;
- }
- } else if (fostream) {
- g_object_unref (fostream);
- fostream = NULL;
- }
- }
-
- g_object_unref (file);
-
- if (error && err)
- *error = err;
- else if (err)
- g_error_free (err);
-
- if (fostream)
- return G_OUTPUT_STREAM (fostream);
-
- return NULL;
-}
-
-static void
-destination_save_addressbook (EPlugin *ep, EABPopupTargetSource *target)
-{
- EBook *book;
- EBookQuery *query;
- GList *contacts, *tmp;
- ESource *primary_source;
- gchar *uri;
- GOutputStream *stream;
- GError *error = NULL;
- gchar *dest_uri = NULL;
- gchar *mount = ipod_get_mount();
-
- primary_source = e_source_selector_peek_primary_selection (target->selector);
-
- /* use g_file api here to build path*/
- dest_uri = g_strdup_printf("%s/%s/Evolution-Addressbook-%s.vcf", mount, "Contacts", e_source_peek_name (primary_source));
- g_free (mount);
-
- uri = e_source_get_uri (primary_source);
-
- book = e_book_new_from_uri (uri, NULL);
-
- if (!book
- || !e_book_open (book, TRUE, NULL)) {
- g_warning ("Couldn't load addressbook %s", uri);
- return;
- }
-
- /* Let us export some meaning full contacts */
- query = e_book_query_any_field_contains ("");
- e_book_get_contacts (book, query, &contacts, NULL);
- e_book_query_unref (query);
-
- stream = open_for_writing (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (target->selector))), dest_uri, &error);
-
- if (stream && !error) {
- for (tmp = contacts; tmp; tmp=tmp->next) {
- EContact *contact = tmp->data;
- gchar *temp = e_vcard_to_string (E_VCARD (contact), EVC_FORMAT_VCARD_30);
- gchar *vcard;
- gchar *converted_vcard;
- gsize vcard_latin1_length;
-
- vcard = g_strconcat (temp, "\r\n", NULL);
- converted_vcard = g_convert (vcard, -1, "ISO-8859-1", "UTF-8", NULL, &vcard_latin1_length, NULL);
- g_output_stream_write_all (stream, converted_vcard, vcard_latin1_length, NULL, NULL, &error);
-
- if (error) {
- display_error_message (gtk_widget_get_toplevel (GTK_WIDGET (target->selector)), error->message);
- g_clear_error (&error);
- }
-
- g_object_unref (contact);
- g_free (temp);
- g_free (vcard);
- g_free (converted_vcard);
- }
-
- g_output_stream_close (stream, NULL, NULL);
- }
-
- if (stream)
- g_object_unref (stream);
-
- sync();
-
- if (contacts != NULL)
- g_list_free (contacts);
-
- g_object_unref (book);
- g_free (dest_uri);
- g_free (uri);
-
- if (error) {
- display_error_message (gtk_widget_get_toplevel (GTK_WIDGET (target->selector)), error->message);
- g_error_free (error);
- }
-}
-
-static void
-destination_save_cal (EPlugin *ep, ECalPopupTargetSource *target, ECalSourceType type)
-{
- FormatHandler *handler = NULL;
- gchar *mount = ipod_get_mount();
- gchar *dest_uri = NULL, *path;
- ESource *primary_source = e_source_selector_peek_primary_selection (target->selector);
-
- /* The available formathandlers */
- handler= ical_format_handler_new ();
-
- switch (type) {
- case E_CAL_SOURCE_TYPE_EVENT:
- path = g_strdup_printf ("Evolution-Calendar-%s", e_source_peek_name (primary_source));
- break;
- case E_CAL_SOURCE_TYPE_TODO:
- path = g_strdup_printf ("Evolution-Tasks-%s", e_source_peek_name (primary_source));
- break;
- case E_CAL_SOURCE_TYPE_JOURNAL:
- path = g_strdup_printf ("Evolution-Memos-%s", e_source_peek_name (primary_source));
- break;
- default:
- path = NULL;
- g_assert_not_reached ();
- }
-
- dest_uri = g_strdup_printf("%s/%s/%s.ics", mount, "Calendars", path);
- g_free (path);
-
- handler->save (handler, ep, target, type, dest_uri);
-
- sync();
-
- g_free (dest_uri);
- g_free (mount);
- g_free (handler);
-}
-
-void
-org_gnome_sync_calendar (EPlugin *ep, ECalPopupTargetSource *target)
-{
- if (!ipod_check_status(FALSE))
- return;
-
- destination_save_cal (ep, target, E_CAL_SOURCE_TYPE_EVENT);
-}
-
-void
-org_gnome_sync_tasks (EPlugin *ep, ECalPopupTargetSource *target)
-{
- if (!ipod_check_status(FALSE))
- return;
-
- destination_save_cal (ep, target, E_CAL_SOURCE_TYPE_TODO);
-}
-
-void
-org_gnome_sync_memos (EPlugin *ep, ECalPopupTargetSource *target)
-{
- if (!ipod_check_status(FALSE))
- return;
-
- destination_save_cal (ep, target, E_CAL_SOURCE_TYPE_JOURNAL);
-}
-
-void
-org_gnome_sync_addressbook (EPlugin *ep, EABPopupTargetSource *target)
-{
- if (!ipod_check_status(FALSE))
- return;
-
- destination_save_addressbook (ep, target);
-}
diff --git a/plugins/ipod-sync/ipod.c b/plugins/ipod-sync/ipod.c
deleted file mode 100644
index ee7bfcb501..0000000000
--- a/plugins/ipod-sync/ipod.c
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * ipod.c - Find an iPod mount point using HAL
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Authors:
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- * Copyright (C) 2004 Justin Wake <jwake@iinet.net.au>
- *
- */
-
-#include "config.h"
-#include "evolution-ipod-sync.h"
-#include <unistd.h>
-#include <string.h>
-
-/**
- * Ensure that HAL is running before we try to use it.
- * From gnome-volume-manager's src/properties.c
- */
-gboolean
-check_hal (void)
-{
- LibHalContext *ctx;
- gchar **devices;
- gint num;
- DBusConnection *conn;
-
- conn = dbus_bus_get (DBUS_BUS_SYSTEM, NULL);
-
- ctx = libhal_ctx_new ();
- libhal_ctx_set_dbus_connection (ctx, conn);
- if (!libhal_ctx_init(ctx, NULL))
- return FALSE;
- devices = libhal_get_all_devices (ctx, &num, NULL);
- if (!devices)
- {
- libhal_ctx_shutdown (ctx, NULL);
- return FALSE;
- }
- libhal_free_string_array (devices);
-
- libhal_ctx_shutdown (ctx, NULL);
- return TRUE;
-}
-
-#define MOUNT "/bin/mount"
-#define UMOUNT "/bin/umount"
-
-/**
- * Try to mount a given device.
- */
-static gboolean
-try_mount (gchar *device)
-{
- gchar *argv[3];
- GError *err = NULL;
- gint exit_status;
-
- argv[0] = (gchar *)MOUNT;
- argv[1] = device;
- argv[2] = NULL;
-
- if (!g_spawn_sync (g_get_home_dir (), argv, NULL, 0, NULL, NULL, NULL,
- NULL, &exit_status, &err))
- {
- g_warning ("try_mount failed: %s", err->message);
- return FALSE;
- }
-
- return (exit_status == 0);
-}
-
-/**
- * Try to unmount a given device.
- */
-gboolean
-try_umount (gchar *device)
-{
- gchar *argv[3];
- GError *err = NULL;
- gint exit_status;
-
- argv[0] = (gchar *)UMOUNT;
- argv[1] = device;
- argv[2] = NULL;
-
- sync ();
-
- if (!g_spawn_sync (g_get_home_dir (), argv, NULL, 0, NULL, NULL, NULL,
- NULL, &exit_status, &err))
- {
- g_warning ("try_umount failed: %s", err->message);
- return FALSE;
- }
-
- return (exit_status == 0);
-}
-
-/**
- * See if a given mount point contains an iPod.
- *
- * Do this by checking for the presence of an iTunes
- * database at <mount_point>/iPod_Control/iTunes/.
- */
-static gboolean
-is_ipod (gchar *mount_point)
-{
- gboolean ret = FALSE;
-
- gchar *itunes_path;
-
- itunes_path = g_build_path (G_DIR_SEPARATOR_S, mount_point,
- "iPod_Control", "iTunes",
- NULL);
-
- if (!g_file_test (itunes_path, G_FILE_TEST_IS_DIR))
- goto out;
-
- ret = TRUE;
-
-out:
- g_free (itunes_path);
- return ret;
-}
-
-/**
- * Try to find a mount point for an iPod.
- */
-gchar *
-find_ipod_mount_point (LibHalContext *ctx)
-{
- gchar **apple_devices = NULL;
- gchar **volumes = NULL;
- gchar *udi, *udi2, *device, *fsusage, *mount_point = NULL;
- gchar *retval = NULL;
- gint apple_count = 0;
- gint volume_count = 0;
- gint has_fs = 0;
- gint i, j;
-
- /* First, we look for things made by Apple. */
- apple_devices = libhal_manager_find_device_string_match (ctx,
- "info.vendor",
- "Apple",
- &apple_count,
- NULL);
-
- for (i = 0; i < apple_count; i++)
- {
- udi = apple_devices[i];
-
- volumes = NULL;
- volumes = libhal_manager_find_device_string_match (ctx,
- "info.parent",
- udi,
- &volume_count,
- NULL);
-
- for (j = 0; j < volume_count; j++)
- {
- udi2 = volumes[j];
-
- /* Only interested if it has a filesystem. */
- has_fs = 0;
-
- if (!libhal_device_property_exists (ctx, udi2,
- "volume.is_filesystem", NULL) ||
- !libhal_device_get_property_bool (ctx, udi2,
- "volume.is_filesystem", NULL))
- {
- has_fs = 1;
- }
-
- fsusage = libhal_device_get_property_string (ctx, udi2,
- "volume.fsusage", NULL);
-
- if (fsusage == NULL)
- continue;
-
- if (strncmp (fsusage, "filesystem", 10) == 0)
- {
- has_fs = 1;
- }
-
- libhal_free_string (fsusage);
-
- if (has_fs == 0)
- continue;
-
- device = libhal_device_get_property_string (ctx, udi2,
- "block.device", NULL);
-
- /* Let's see if it's mounted. */
- if (!libhal_device_property_exists (ctx, udi2,
- "volume.is_mounted", NULL) ||
- !libhal_device_get_property_bool (ctx, udi2,
- "volume.is_mounted", NULL))
- {
- /* It isn't, so let's attempt to mount it */
- if (device != NULL)
- {
- try_mount (device);
- }
- }
-
- if (!libhal_device_property_exists (ctx, udi2,
- "volume.mount_point", NULL))
- {
- libhal_free_string (device);
- continue;
- }
-
- libhal_free_string (device);
-
- mount_point = libhal_device_get_property_string (ctx, udi2,
- "volume.mount_point", NULL);
-
- if (is_ipod (mount_point))
- {
- goto out;
- }
-
- libhal_free_string (mount_point);
- mount_point = NULL;
- }
- }
-
-out:
- if (volumes != NULL)
- libhal_free_string_array (volumes);
-
- if (apple_devices != NULL)
- libhal_free_string_array (apple_devices);
-
- if (mount_point != NULL)
- {
- retval = g_strdup (mount_point);
- libhal_free_string (mount_point);
- }
-
- return (retval);
-}
diff --git a/plugins/ipod-sync/org-gnome-ipod-sync-evolution.eplug.xml b/plugins/ipod-sync/org-gnome-ipod-sync-evolution.eplug.xml
deleted file mode 100644
index fdd70064e6..0000000000
--- a/plugins/ipod-sync/org-gnome-ipod-sync-evolution.eplug.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0"?>
-<e-plugin-list>
- <e-plugin id="org.gnome.evolution.ipod_sync" type="shlib"
- _name="iPod Synchronization"
- location="@PLUGINDIR@/liborg-gnome-ipod-sync-evolution@SOEXT@">
- <author name="Srinivasa Ragavan" email="sragavan@novell.com"/>
- <_description>Synchronize your data with your Apple iPod.</_description>
-
- <hook class="org.gnome.evolution.calendar.popup:1.0">
- <menu id="org.gnome.evolution.tasks.source.popup" target="source">
- <item type="item" path="40.sync_ipod.00" _label="Synchronize to iPod" icon="gnome-dev-ipod" activate="org_gnome_sync_tasks"/>
- </menu>
- <menu id="org.gnome.evolution.calendar.source.popup" target="source">
- <item type="item" path="40.sync_ipod.00" _label="Synchronize to iPod" icon="gnome-dev-ipod" activate="org_gnome_sync_calendar"/>
- </menu>
- <menu id="org.gnome.evolution.memos.source.popup" target="source">
- <item type="item" path="40.sync_ipod.00" _label="Synchronize to iPod" icon="gnome-dev-ipod" activate="org_gnome_sync_memos"/>
- </menu>
- </hook>
- <hook class="org.gnome.evolution.addressbook.popup:1.0">
- <menu id="org.gnome.evolution.addressbook.source.popup" target="source">
- <item type="item" path="40.sync_ipod.00" _label="Synchronize to iPod" icon="gnome-dev-ipod" activate="org_gnome_sync_addressbook"/>
- </menu>
- </hook>
- </e-plugin>
-</e-plugin-list>
diff --git a/plugins/ipod-sync/sync.c b/plugins/ipod-sync/sync.c
deleted file mode 100644
index 91e99c02e1..0000000000
--- a/plugins/ipod-sync/sync.c
+++ /dev/null
@@ -1,453 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- * Copyright (C) 2004 Justin Wake <jwake@iinet.net.au>
- *
- */
-
-#include "config.h"
-#include "evolution-ipod-sync.h"
-
-#include <gtk/gtk.h>
-#include <glib/gi18n-lib.h>
-#include <libebook/e-book.h>
-#include <libebook/e-contact.h>
-#include <libecal/e-cal.h>
-#include <libical/ical.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-
-#define EBOOK_SOURCE_LIST "/apps/evolution/addressbook/sources"
-#define ECAL_SOURCE_LIST "/apps/evolution/calendar/sources"
-#define ETASK_SOURCE_LIST "/apps/evolution/tasks/sources"
-#define EMEMO_SOURCE_LIST "/apps/evolution/memos/sources"
-
-extern GtkWidget *progress_bar;
-extern IPod ipod_info;
-
-static void pulse (void)
-{
- gtk_progress_bar_pulse (GTK_PROGRESS_BAR (progress_bar));
- g_main_context_iteration (NULL, FALSE);
-}
-
-/**
- * Something bad happened.
- */
-static void error_dialog (gchar *title, gchar *error)
-{
- GtkWidget *error_dlg =
- gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
- "<span weight=\"bold\" size=\"larger\">"
- "%s</span>\n\n%s.", title, error);
-
- gtk_dialog_set_has_separator (GTK_DIALOG (error_dlg), FALSE);
- gtk_container_set_border_width (GTK_CONTAINER (error_dlg), 5);
- gtk_label_set_use_markup (GTK_LABEL (GTK_MESSAGE_DIALOG (error_dlg)->label),
- TRUE);
- gtk_dialog_set_default_response (GTK_DIALOG (error_dlg),
- GTK_RESPONSE_OK);
-
- gtk_dialog_run (GTK_DIALOG (error_dlg));
- gtk_widget_destroy (error_dlg);
-}
-
-/**
- * Something really bad happened.
- */
-static void critical_error (gchar *title, gchar *error)
-{
- error_dialog (title, error);
- gtk_main_quit ();
- exit (EXIT_FAILURE);
-}
-
-static GSList *
-get_source_uris_for_type (gchar *key)
-{
- ESourceList *sources;
- GSList *groups;
- GSList *uris = NULL;
- GSList *item, *source;
- sources = e_source_list_new_for_gconf_default (key);
- groups = e_source_list_peek_groups (sources);
-
- for (item = groups; item != NULL; item = item->next)
- {
- ESourceGroup *group;
-
- g_assert (item->data != NULL);
-
- group = E_SOURCE_GROUP (item->data);
- for (source = e_source_group_peek_sources(group);
- source != NULL;
- source = source->next)
- {
- gchar *uri;
- g_assert (source->data != NULL);
- uri = e_source_get_uri (E_SOURCE (source->data));
- uris = g_slist_append (uris, uri);
- }
- }
-
- g_object_unref (sources);
-
- return uris;
-}
-
-static void
-free_uri_list (GSList *uris)
-{
- g_slist_foreach (uris, (GFunc)g_free, NULL);
- g_slist_free (uris);
-}
-
-/**
- * Force the data into little-endian output.
- *
- * Note: data must be of even length.
- */
-static void
-force_little_endian (gunichar2 *data, gint length)
-{
- gint i;
-
- /* We're big-endian?
- (A little tidier than before) */
- if (G_BYTE_ORDER == G_BIG_ENDIAN)
- {
- for (i = 0; i < length; i++)
- {
- gunichar2 c = data[i];
-
- c = ((((guint16)(c) & 0xFF00) >> 8) |
- (((guint16)(c) & 0x00FF) << 8));
-
- data[i] = c;
- }
- }
-}
-
-/**
- * Write a string of data to a file on the iPod.
- *
- * Will return if the write worked, otherwise will
- * display an error dialog and end the program.
- */
-static void
-write_to_ipod (GString *str, gchar *path, gchar *filename)
-{
- gchar *output_path;
- gchar *output_file;
- FILE *f;
- guchar *utf8;
- gunichar2 *utf16;
- guchar bom[2] = {0xFF, 0xFE};
- gint i, count;
-
- output_path = g_build_path (G_DIR_SEPARATOR_S,
- ipod_info.mount_point,
- path, NULL);
-
- if (!g_file_test (output_path, G_FILE_TEST_IS_DIR))
- {
- if (mkdir (output_path, 0777) != 0)
- critical_error (_("No output directory!"),
- _("The output directory was not found on "
- "iPod! Please ensure that iPod has been correctly "
- "set up and try again."));
- }
-
- output_file = g_build_filename (output_path, filename, NULL);
-
- g_free (output_path);
-
- f = fopen (output_file, "w");
-
- g_free (output_file);
-
- if (f == NULL)
- {
- critical_error (_("Could not export data!"), g_strerror (errno));
- }
-
- /* Convert the input string into UTF16 */
- utf8 = str->str;
- if (g_utf8_validate (utf8, -1, NULL))
- {
- utf16 = g_utf8_to_utf16 (utf8, -1, NULL, NULL, NULL);
-
- /* Swap the bytes if we're big-endian so that the output
- * remains little-endian according to the BOM. */
- force_little_endian (utf16, g_utf8_strlen (utf8, -1));
- }
-
- count = 2 * g_utf8_strlen (utf8, -1);
-
- /* Write the BOM
- * 0xFF 0xFE
- * UTF-16 Little Endian
- */
- for (i = 0; i < 2; i++)
- fwrite (&bom[i], 1, 1, f);
-
- if ((fwrite(utf16, count, 1, f) != 1) &&
- (count > 0))
- {
- g_free (utf16);
- fclose (f);
- critical_error (_("Could not export data!"),
- _("Exporting data failed."));
- }
-
- g_free (utf16);
- fclose (f);
-}
-
-static GString *
-uri_list_to_vcard_string (GSList *uris)
-{
- GString *str = NULL;
- EBook *book = NULL;
- EBookQuery *qry = NULL;
- GList *contacts = NULL, *c = NULL;
- GSList *uri;
-
- qry = e_book_query_field_exists (E_CONTACT_FILE_AS);
-
- str = g_string_new (NULL);
-
- for (uri = uris; uri != NULL; uri = uri->next)
- {
- g_assert (uri->data != NULL);
-
- book = e_book_new_from_uri (uri->data, NULL);
-
- if (e_book_open (book, TRUE, NULL) == FALSE)
- {
- error_dialog (_("Could not open addressbook!"),
- _("Could not open the Evolution addressbook to export data."));
-
- /* Maybe the next one will work. */
- continue;
- }
-
- if (e_book_get_contacts (book, qry, &contacts, NULL) == FALSE)
- {
- /* Looks like this one is empty. */
- g_object_unref (book);
- continue;
- }
-
- /* Loop through the contacts, adding them to the string. */
- for (c = contacts; c != NULL; c = c->next)
- {
- gchar *tmp;
- EContact *contact = E_CONTACT (c->data);
-
- tmp = e_vcard_to_string (E_VCARD (contact),
- EVC_FORMAT_VCARD_30);
-
- g_string_append (str, tmp);
- g_string_append (str, "\r\n");
- g_free (tmp);
- g_object_unref (contact);
- }
-
- if (contacts != NULL)
- g_list_free (contacts);
-
- g_object_unref (book);
- }
-
- /* Okay, all done. */
- e_book_query_unref (qry);
-
- return (str);
-}
-
-static GString *
-uri_list_to_vcal_string (GSList *uris, ECalSourceType type)
-{
- GString *str = NULL;
- ECal *cal = NULL;
- icalcomponent *obj = NULL;
- GList *objects = NULL, *o = NULL;
- GSList *uri;
-
- str = g_string_new (NULL);
-
- for (uri = uris; uri != NULL; uri = uri->next)
- {
- g_assert (uri->data != NULL);
-
- cal = e_cal_new_from_uri (uri->data, type);
-
- if (e_cal_open (cal, TRUE, NULL) == FALSE)
- {
- error_dialog (_("Could not open calendar/todo!"),
- _("Could not open the Evolution calendar/todo list to export data."));
-
- /* Maybe the next one will work. */
- continue;
- }
-
- e_cal_get_object_list (cal, "#t", &objects, NULL);
-
- for (o = objects; o != NULL; o = o->next)
- {
- gchar *tmp;
- icalcomponent *comp;
-
- g_assert (o->data != NULL);
-
- comp = o->data;
- tmp = e_cal_get_component_as_string (cal, comp);
- g_string_append (str, tmp);
- g_free (tmp);
- }
-
- g_object_unref (cal);
- }
-
- /* Okay, all done. */
-
- return (str);
-}
-
-/* Attempt to export the addressbook. */
-static void
-export_addressbook (void)
-{
- GSList *uris;
- GString *data;
- pulse ();
-
- uris = get_source_uris_for_type (EBOOK_SOURCE_LIST);
-
- pulse ();
-
- data = uri_list_to_vcard_string (uris);
-
- write_to_ipod (data, "/Contacts/", "evolution.vcf");
-
- g_string_free (data, TRUE);
-
- pulse ();
-
- free_uri_list (uris);
-
- pulse ();
-}
-
-/* Attempt to export the calendar(s). */
-static void
-export_calendar (void)
-{
- GSList *uris;
- GString *data;
-
- pulse ();
-
- uris = get_source_uris_for_type (ECAL_SOURCE_LIST);
-
- pulse ();
-
- data = uri_list_to_vcal_string (uris, E_CAL_SOURCE_TYPE_EVENT);
-
- write_to_ipod (data, "/Calendars/", "evolution-cal.ics");
-
- g_string_free (data, TRUE);
-
- free_uri_list (uris);
-
- pulse ();
-}
-
-/* Attempt to export the task list(s). */
-static void
-export_tasks (void)
-{
- GSList *uris;
- GString *data;
-
- pulse ();
-
- uris = get_source_uris_for_type (ETASK_SOURCE_LIST);
-
- pulse ();
-
- data = uri_list_to_vcal_string (uris, E_CAL_SOURCE_TYPE_TODO);
-
- write_to_ipod (data, "/Calendars/", "evolution-todo.ics");
-
- g_string_free (data, TRUE);
-
- free_uri_list (uris);
-
- pulse ();
-}
-
-/* Attempt to export the memo list(s). */
-static void
-export_memos (void)
-{
- GSList *uris;
- GString *data;
-
- pulse ();
-
- uris = get_source_uris_for_type (EMEMO_SOURCE_LIST);
-
- pulse ();
-
- data = uri_list_to_vcal_string (uris, E_CAL_SOURCE_TYPE_JOURNAL);
-
- write_to_ipod (data, "/Calendars/", "evolution-memo.ics");
-
- g_string_free (data, TRUE);
-
- free_uri_list (uris);
-
- pulse ();
-}
-
-void
-export_to_ipod (void)
-{
- pulse ();
-
- if (ipod_info.addressbook == TRUE)
- export_addressbook ();
-
- if (ipod_info.calendar == TRUE)
- export_calendar ();
-
- if (ipod_info.tasks == TRUE)
- export_tasks ();
-
- if (ipod_info.memos == TRUE)
- export_memos ();
-
- pulse ();
- sync ();
- pulse ();
- return;
-}
-
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 72f42edaa2..bf4ec0ed90 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -374,9 +374,6 @@ plugins/hula-account-setup/org-gnome-evolution-hula-account-setup.eplug.xml
plugins/imap-features/imap-headers.c
plugins/imap-features/imap-headers.glade
plugins/imap-features/org-gnome-imap-features.eplug.xml
-plugins/ipod-sync/evolution-ipod-sync.c
-plugins/ipod-sync/ical-format.c
-plugins/ipod-sync/org-gnome-ipod-sync-evolution.eplug.xml
plugins/itip-formatter/itip-formatter.c
plugins/itip-formatter/itip-view.c
plugins/itip-formatter/org-gnome-itip-formatter.eplug.xml