aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/caldav/caldav-source.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/caldav/caldav-source.c')
-rw-r--r--plugins/caldav/caldav-source.c297
1 files changed, 0 insertions, 297 deletions
diff --git a/plugins/caldav/caldav-source.c b/plugins/caldav/caldav-source.c
deleted file mode 100644
index 130d0fa834..0000000000
--- a/plugins/caldav/caldav-source.c
+++ /dev/null
@@ -1,297 +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:
- * Christian Kellner <gicmo@gnome.org>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <glib/gi18n-lib.h>
-
-#include <gtk/gtk.h>
-
-#include <e-util/e-config.h>
-#include <e-util/e-plugin.h>
-#include <e-util/e-plugin-util.h>
-#include <shell/e-shell.h>
-#include <calendar/gui/e-cal-config.h>
-#include <libedataserver/e-account-list.h>
-#include <libecal/e-cal-client.h>
-
-#include <string.h>
-
-#include "caldav-browse-server.h"
-
-#define d(x)
-
-/*****************************************************************************/
-/* prototypes */
-gint e_plugin_lib_enable (EPlugin *ep,
- gint enable);
-
-GtkWidget * oge_caldav (EPlugin *epl,
- EConfigHookItemFactoryData *data);
-
-/*****************************************************************************/
-/* plugin intialization */
-
-static void
-ensure_caldav_source_group (const gchar *backend_name)
-{
- EShellBackend *backend;
- ESourceList *source_list = NULL;
-
- backend = e_shell_get_backend_by_name (e_shell_get_default (), backend_name);
- g_return_if_fail (backend != NULL);
-
- g_object_get (G_OBJECT (backend), "source-list", &source_list, NULL);
- g_return_if_fail (source_list != NULL);
-
- e_source_list_ensure_group (source_list, _("CalDAV"), "caldav://", FALSE);
- g_object_unref (source_list);
-}
-
-gint
-e_plugin_lib_enable (EPlugin *ep,
- gint enable)
-{
-
- if (enable) {
- d(g_print ("CalDAV Eplugin starting up ...\n"));
- ensure_caldav_source_group ("calendar");
- ensure_caldav_source_group ("tasks");
- ensure_caldav_source_group ("memos");
- }
-
- return 0;
-}
-
-/*****************************************************************************/
-
-static void
-location_changed_cb (GtkEntry *editable,
- ESource *source)
-{
- SoupURI *suri;
- gchar *ruri;
- const gchar *uri, *username;
-
- uri = gtk_entry_get_text (editable);
-
- suri = soup_uri_new (uri);
- if (!suri)
- return;
-
- username = e_source_get_property (source, "username");
- if (username && !*username)
- username = NULL;
-
- soup_uri_set_user (suri, username);
-
- ruri = e_plugin_util_uri_no_proto (suri);
- e_source_set_relative_uri (source, ruri);
- g_free (ruri);
- soup_uri_free (suri);
-}
-
-static void
-user_changed_cb (GtkEntry *editable,
- ESource *source)
-{
- SoupURI *suri;
- gchar *uri, *ruri;
- const gchar *user;
-
- uri = e_source_get_uri (source);
- user = gtk_entry_get_text (editable);
-
- if (uri == NULL)
- return;
-
- suri = soup_uri_new (uri);
- g_free (uri);
-
- if (suri == NULL)
- return;
-
- soup_uri_set_user (suri, NULL);
-
- if (user != NULL && *user) {
- soup_uri_set_user (suri, user);
- e_source_set_property (source, "auth", "1");
- } else {
- e_source_set_property (source, "auth", NULL);
- }
-
- e_source_set_property (source, "username", user);
- ruri = e_plugin_util_uri_no_proto (suri);
- e_source_set_relative_uri (source, ruri);
- g_free (ruri);
- soup_uri_free (suri);
-}
-
-static void
-browse_cal_clicked_cb (GtkButton *button,
- gpointer user_data)
-{
- GtkEntry *url, *username, *usermail;
- GtkToggleButton *ssl, *ignore_cert, *autoschedule;
- gchar *new_url, *new_usermail;
- gboolean new_autoschedule;
-
- g_return_if_fail (button != NULL);
-
- url = g_object_get_data (G_OBJECT (button), "caldav-url");
- ssl = g_object_get_data (G_OBJECT (button), "caldav-ssl");
- ignore_cert = g_object_get_data (G_OBJECT (button), "caldav-ignore-cert");
- username = g_object_get_data (G_OBJECT (button), "caldav-username");
- usermail = g_object_get_data (G_OBJECT (button), "caldav-usermail");
- autoschedule = g_object_get_data (G_OBJECT (button), "caldav-autoschedule");
-
- g_return_if_fail (url != NULL);
- g_return_if_fail (GTK_IS_ENTRY (url));
- g_return_if_fail (ssl != NULL);
- g_return_if_fail (GTK_IS_TOGGLE_BUTTON (ssl));
- g_return_if_fail (ignore_cert != NULL);
- g_return_if_fail (GTK_IS_TOGGLE_BUTTON (ignore_cert));
- g_return_if_fail (username != NULL);
- g_return_if_fail (GTK_IS_ENTRY (username));
- g_return_if_fail (usermail != NULL);
- g_return_if_fail (GTK_IS_ENTRY (usermail));
- g_return_if_fail (autoschedule != NULL);
- g_return_if_fail (GTK_IS_TOGGLE_BUTTON (autoschedule));
-
- new_usermail = g_strdup (gtk_entry_get_text (usermail)),
- new_autoschedule = gtk_toggle_button_get_active (autoschedule);
-
- new_url = caldav_browse_server (
- GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (button))),
- gtk_entry_get_text (url),
- gtk_entry_get_text (username),
- gtk_toggle_button_get_active (ssl),
- gtk_toggle_button_get_active (ignore_cert),
- &new_usermail,
- &new_autoschedule,
- GPOINTER_TO_INT (user_data));
-
- if (new_url) {
- gtk_entry_set_text (url, new_url);
- g_free (new_url);
-
- if (new_usermail)
- gtk_entry_set_text (usermail, new_usermail);
-
- gtk_toggle_button_set_active (autoschedule, new_autoschedule);
- }
-
- g_free (new_usermail);
-}
-
-GtkWidget *
-oge_caldav (EPlugin *epl,
- EConfigHookItemFactoryData *data)
-{
- ECalConfigTargetSource *t = (ECalConfigTargetSource *) data->target;
- ESource *source;
- SoupURI *suri;
- GtkWidget *parent, *location, *ssl, *ignore_cert, *user, *mail, *autoschedule, *browse_cal;
- gchar *uri, *username;
- guint n_rows;
-
- source = t->source;
-
- if (!e_plugin_util_is_group_proto (e_source_peek_group (source), "caldav")) {
- return NULL;
- }
-
- /* Extract the username from the uri so we can prefill the
- * dialog right, remove the username from the url then */
- uri = e_source_get_uri (source);
- suri = soup_uri_new (uri);
- g_free (uri);
-
- if (suri) {
- soup_uri_set_user (suri, NULL);
- soup_uri_set_password (suri, NULL);
- uri = soup_uri_to_string (suri, FALSE);
- soup_uri_free (suri);
- } else {
- uri = g_strdup ("");
- }
-
- username = e_source_get_duped_property (source, "username");
-
- /* Build up the UI */
- parent = data->parent;
-
- location = e_plugin_util_add_entry (parent, _("_URL:"), NULL, NULL);
- gtk_entry_set_text (GTK_ENTRY (location), uri);
-
- g_signal_connect (
- location, "changed",
- G_CALLBACK (location_changed_cb), source);
-
- ssl = e_plugin_util_add_check (parent, _("Use _secure connection"), source, "ssl", "1", "0");
- ignore_cert = e_plugin_util_add_check (parent, _("_Ignore invalid SSL certificate"), source, "ignore-invalid-cert", "1", NULL);
-
- g_object_bind_property (
- ssl, "active",
- ignore_cert, "sensitive",
- G_BINDING_SYNC_CREATE);
-
- user = e_plugin_util_add_entry (parent, _("User_name:"), NULL, NULL);
- gtk_entry_set_text (GTK_ENTRY (user), username ? username : "");
-
- g_signal_connect (
- user, "changed",
- G_CALLBACK (user_changed_cb), source);
-
- g_free (uri);
- g_free (username);
-
- mail = e_plugin_util_add_entry (parent, _("User e_mail:"), source, "usermail");
- autoschedule = e_plugin_util_add_check (
- parent, _("Server _handles meeting invitations"),
- source, "autoschedule", "1", "0");
-
- browse_cal = gtk_button_new_with_mnemonic (_("Brows_e server for a calendar"));
- gtk_widget_show (browse_cal);
- g_object_get (parent, "n-rows", &n_rows, NULL);
- gtk_table_attach (
- GTK_TABLE (parent), browse_cal, 1, 2,
- n_rows, n_rows + 1, GTK_FILL, 0, 0, 0);
-
- g_object_set_data (G_OBJECT (browse_cal), "caldav-url", location);
- g_object_set_data (G_OBJECT (browse_cal), "caldav-ssl", ssl);
- g_object_set_data (G_OBJECT (browse_cal), "caldav-ignore-cert", ignore_cert);
- g_object_set_data (G_OBJECT (browse_cal), "caldav-username", user);
- g_object_set_data (G_OBJECT (browse_cal), "caldav-usermail", mail);
- g_object_set_data (G_OBJECT (browse_cal), "caldav-autoschedule", autoschedule);
-
- g_signal_connect (
- browse_cal, "clicked",
- G_CALLBACK (browse_cal_clicked_cb),
- GINT_TO_POINTER (t->source_type));
-
- e_plugin_util_add_refresh (parent, _("Re_fresh:"), source, "refresh");
-
- return location;
-}