diff options
author | Milan Crha <mcrha@redhat.com> | 2009-12-08 04:19:50 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2009-12-08 04:19:50 +0800 |
commit | a7cede983ca1580a16df40fd07cebea2d69cefa6 (patch) | |
tree | cd66cd60ae1610d5e035b5f3f79c588d94faf73c /plugins/caldav/caldav-source.c | |
parent | 31204c9cc21ec32c8006124cf18763161daa99d2 (diff) | |
download | gsoc2013-evolution-a7cede983ca1580a16df40fd07cebea2d69cefa6.tar.gz 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.c | 47 |
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); |