aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/caldav/caldav-source.c
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2009-12-08 04:19:50 +0800
committerMilan Crha <mcrha@redhat.com>2009-12-08 04:19:50 +0800
commita7cede983ca1580a16df40fd07cebea2d69cefa6 (patch)
treecd66cd60ae1610d5e035b5f3f79c588d94faf73c /plugins/caldav/caldav-source.c
parent31204c9cc21ec32c8006124cf18763161daa99d2 (diff)
downloadgsoc2013-evolution-a7cede983ca1580a16df40fd07cebea2d69cefa6.tar
gsoc2013-evolution-a7cede983ca1580a16df40fd07cebea2d69cefa6.tar.gz
gsoc2013-evolution-a7cede983ca1580a16df40fd07cebea2d69cefa6.tar.bz2
gsoc2013-evolution-a7cede983ca1580a16df40fd07cebea2d69cefa6.tar.lz
gsoc2013-evolution-a7cede983ca1580a16df40fd07cebea2d69cefa6.tar.xz
gsoc2013-evolution-a7cede983ca1580a16df40fd07cebea2d69cefa6.tar.zst
gsoc2013-evolution-a7cede983ca1580a16df40fd07cebea2d69cefa6.zip
Bug #359755 - Support for CalDAV collections
Diffstat (limited to 'plugins/caldav/caldav-source.c')
-rw-r--r--plugins/caldav/caldav-source.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/plugins/caldav/caldav-source.c b/plugins/caldav/caldav-source.c
index f5d8f59d12..4821cbf2f4 100644
--- a/plugins/caldav/caldav-source.c
+++ b/plugins/caldav/caldav-source.c
@@ -38,6 +38,8 @@
#include <string.h>
+#include "caldav-browse-server.h"
+
#define d(x)
/*****************************************************************************/
@@ -303,6 +305,39 @@ combobox_changed (GtkComboBox *combobox, ESource *source)
g_free (refresh_str);
}
+static void
+browse_cal_clicked_cb (GtkButton *button, gpointer user_data)
+{
+ GtkEntry *url, *username;
+ GtkToggleButton *ssl;
+ gchar *new_url;
+
+ g_return_if_fail (button != NULL);
+
+ url = g_object_get_data (G_OBJECT (button), "caldav-url");
+ username = g_object_get_data (G_OBJECT (button), "caldav-username");
+ ssl = g_object_get_data (G_OBJECT (button), "caldav-ssl");
+
+ g_return_if_fail (url != NULL);
+ g_return_if_fail (GTK_IS_ENTRY (url));
+ g_return_if_fail (username != NULL);
+ g_return_if_fail (GTK_IS_ENTRY (username));
+ g_return_if_fail (ssl != NULL);
+ g_return_if_fail (GTK_IS_TOGGLE_BUTTON (ssl));
+
+ 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),
+ GPOINTER_TO_INT (user_data));
+
+ if (new_url) {
+ gtk_entry_set_text (url, new_url);
+ g_free (new_url);
+ }
+}
+
GtkWidget *
oge_caldav (EPlugin *epl,
EConfigHookItemFactoryData *data)
@@ -318,6 +353,7 @@ oge_caldav (EPlugin *epl,
GtkWidget *widget;
GtkWidget *luser;
GtkWidget *user;
+ GtkWidget *browse_cal;
GtkWidget *label, *hbox, *spin, *combobox;
gchar *uri;
gchar *username;
@@ -429,6 +465,17 @@ oge_caldav (EPlugin *epl,
g_free (uri);
g_free (username);
+ browse_cal = gtk_button_new_with_mnemonic (_("Brows_e server for a calendar"));
+ gtk_widget_show (browse_cal);
+ gtk_table_attach (GTK_TABLE (parent), browse_cal, 1, 2, row, row + 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-username", user);
+ g_object_set_data (G_OBJECT (browse_cal), "caldav-ssl", cssl);
+ g_signal_connect (G_OBJECT (browse_cal), "clicked", G_CALLBACK (browse_cal_clicked_cb), GINT_TO_POINTER (t->source_type));
+
+ row++;
+
/* add refresh option */
label = gtk_label_new_with_mnemonic (_("Re_fresh:"));
gtk_widget_show (label);