From 92c958d9bf5f875848650c7e137e5d7ca14a96aa Mon Sep 17 00:00:00 2001 From: Paul Bolle Date: Thu, 7 Aug 2008 17:35:04 +0000 Subject: ** Fixes bug #546785 2008-08-07 Paul Bolle ** Fixes bug #546785 * plugins/bbdb/bbdb.c: (e_plugin_lib_enable): The bbdb plugin is noisy when enabled: "BBDB spinning up..." Make this plugin just as polite as google-account-setup. * plugins/caldav/caldav-source.c: (e_plugin_lib_enable): The caldav plugin is noisy when enabled: "CalDAV Eplugin starting up ..." Make this plugin just as polite as google-account-setup. svn path=/trunk/; revision=35928 --- plugins/caldav/caldav-source.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'plugins/caldav/caldav-source.c') diff --git a/plugins/caldav/caldav-source.c b/plugins/caldav/caldav-source.c index 784e79bf8d..8b48bf6319 100644 --- a/plugins/caldav/caldav-source.c +++ b/plugins/caldav/caldav-source.c @@ -38,6 +38,8 @@ #include +#define d(x) + /*****************************************************************************/ /* prototypes */ int e_plugin_lib_enable (EPluginLib *ep, @@ -84,7 +86,7 @@ e_plugin_lib_enable (EPluginLib *ep, int enable) { if (enable) { - g_print ("CalDAV Eplugin starting up ...\n"); + d(g_print ("CalDAV Eplugin starting up ...\n")); ensure_caldav_source_group (); } -- cgit v1.2.3 From 14fa5c8a8cf736e3207b9d9e414586d9ff3a623f Mon Sep 17 00:00:00 2001 From: Sankarasivasubramanian Pasupathilingam Date: Tue, 2 Sep 2008 16:25:53 +0000 Subject: Change License from GPL to LGPL. 2nd batch. More changes to come. svn path=/trunk/; revision=36247 --- plugins/caldav/caldav-source.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'plugins/caldav/caldav-source.c') diff --git a/plugins/caldav/caldav-source.c b/plugins/caldav/caldav-source.c index 8b48bf6319..24bf2040f3 100644 --- a/plugins/caldav/caldav-source.c +++ b/plugins/caldav/caldav-source.c @@ -1,23 +1,23 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- - * ex: set ts=8: */ -/* Evolution calendar - caldav backend - * - * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) - * +/* * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. + * 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 General Public License for more details. + * 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 * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - * Author: Christian Kellner + * Authors: + * Christian Kellner + * + * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) + * */ #ifdef HAVE_CONFIG_H -- cgit v1.2.3 From d1d61c75f975a151dc131ef3b094a9821c7bb1c5 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 28 Nov 2008 10:42:26 +0000 Subject: ** Part of fix for bug #359745 2008-11-28 Milan Crha ** Part of fix for bug #359745 * caldav-source.c: (ensure_caldav_source_group), (e_plugin_lib_enable): Ensure source group for VTODO and VJOURNAL too. * caldav-source.c: (set_refresh_time), (get_refresh_minutes), (spin_changed), (option_changed), (oge_caldav): Be able to change refresh time for the CalDAV sources. * org-gnome-evolution-caldav.eplug.xml: Show CalDAV options under all the other standard options. Note: Requires at least eds revision 9781 (version 2.25.2, in configure.in already) svn path=/trunk/; revision=36820 --- plugins/caldav/caldav-source.c | 161 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 150 insertions(+), 11 deletions(-) (limited to 'plugins/caldav/caldav-source.c') diff --git a/plugins/caldav/caldav-source.c b/plugins/caldav/caldav-source.c index 24bf2040f3..cd758f54bb 100644 --- a/plugins/caldav/caldav-source.c +++ b/plugins/caldav/caldav-source.c @@ -52,21 +52,31 @@ GtkWidget * oge_caldav (EPlugin *epl, /* plugin intialization */ static void -ensure_caldav_source_group (void) +ensure_caldav_source_group (ECalSourceType source_type) { ESourceList *slist; - ESourceGroup *group; - + GSList *groups, *g; + ESourceGroup *group = NULL; - if (!e_cal_get_sources (&slist, E_CAL_SOURCE_TYPE_EVENT, NULL)) { + if (!e_cal_get_sources (&slist, source_type, NULL)) { g_warning ("Could not get calendar source list from GConf!"); return; } - group = e_source_list_peek_group_by_name (slist, _("CalDAV")); + groups = e_source_list_peek_groups (slist); + for (g = groups; g; g = g->next) { + group = E_SOURCE_GROUP (g->data); + + if (group && e_source_group_peek_base_uri (group) && strncmp ("caldav://", e_source_group_peek_base_uri (group), 9) == 0) + break; + + group = NULL; + } if (group == NULL) { + /* no such group has been found, create it */ gboolean res; + group = e_source_group_new (_("CalDAV"), "caldav://"); res = e_source_list_add_group (slist, group, -1); @@ -77,8 +87,12 @@ ensure_caldav_source_group (void) } g_object_unref (group); - g_object_unref (slist); + } else { + /* we found the group, change the name based on the actual language */ + e_source_group_set_name (group, _("CalDAV")); } + + g_object_unref (slist); } int @@ -87,7 +101,9 @@ e_plugin_lib_enable (EPluginLib *ep, int enable) if (enable) { d(g_print ("CalDAV Eplugin starting up ...\n")); - ensure_caldav_source_group (); + ensure_caldav_source_group (E_CAL_SOURCE_TYPE_EVENT); + ensure_caldav_source_group (E_CAL_SOURCE_TYPE_TODO); + ensure_caldav_source_group (E_CAL_SOURCE_TYPE_JOURNAL); } return 0; @@ -189,6 +205,85 @@ user_changed (GtkEntry *editable, ESource *source) e_uri_free (euri); } +static void +set_refresh_time (ESource *source, GtkWidget *spin, GtkWidget *option) +{ + int time; + int item_num = 0; + const char *refresh_str = e_source_get_property (source, "refresh"); + time = refresh_str ? atoi (refresh_str) : 30; + + if (time && !(time % 10080)) { + /* weeks */ + item_num = 3; + time /= 10080; + } else if (time && !(time % 1440)) { + /* days */ + item_num = 2; + time /= 1440; + } else if (time && !(time % 60)) { + /* hours */ + item_num = 1; + time /= 60; + } + gtk_option_menu_set_history (GTK_OPTION_MENU (option), item_num); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin), time); +} + +static char * +get_refresh_minutes (GtkWidget *spin, GtkWidget *option) +{ + int setting = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spin)); + switch (gtk_option_menu_get_history (GTK_OPTION_MENU (option))) { + case 0: + /* minutes */ + break; + case 1: + /* hours */ + setting *= 60; + break; + case 2: + /* days */ + setting *= 1440; + break; + case 3: + /* weeks - is this *really* necessary? */ + setting *= 10080; + break; + default: + g_warning ("Time unit out of range"); + break; + } + + return g_strdup_printf ("%d", setting); +} + +static void +spin_changed (GtkSpinButton *spin, ESource *source) +{ + char *refresh_str; + GtkWidget *option; + + option = g_object_get_data (G_OBJECT (spin), "option"); + + refresh_str = get_refresh_minutes ((GtkWidget *) spin, option); + e_source_set_property (source, "refresh", refresh_str); + g_free (refresh_str); +} + +static void +option_changed (GtkOptionMenu *option, ESource *source) +{ + char *refresh_str; + GtkWidget *spin; + + spin = g_object_get_data (G_OBJECT (option), "spin"); + + refresh_str = get_refresh_minutes (spin, (GtkWidget *) option); + e_source_set_property (source, "refresh", refresh_str); + g_free (refresh_str); +} + GtkWidget * oge_caldav (EPlugin *epl, EConfigHookItemFactoryData *data) @@ -204,11 +299,13 @@ oge_caldav (EPlugin *epl, GtkWidget *widget; GtkWidget *luser; GtkWidget *user; + GtkWidget *label, *hbox, *spin, *option, *menu; + GtkWidget *times[4]; char *uri; char *username; const char *ssl_prop; gboolean ssl_enabled; - int row; + int row, i; source = t->source; group = e_source_peek_group (source); @@ -268,12 +365,14 @@ oge_caldav (EPlugin *epl, G_CALLBACK (location_changed), source); + row++; + cssl = gtk_check_button_new_with_mnemonic (_("Use _SSL")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cssl), ssl_enabled); gtk_widget_show (cssl); gtk_table_attach (GTK_TABLE (parent), cssl, 1, 2, - row + 1, row + 2, + row , row + 1, GTK_FILL, 0, 0, 0); g_signal_connect (G_OBJECT (cssl), @@ -281,19 +380,21 @@ oge_caldav (EPlugin *epl, G_CALLBACK (ssl_changed), source); + row++; + luser = gtk_label_new_with_mnemonic (_("User_name:")); gtk_widget_show (luser); gtk_misc_set_alignment (GTK_MISC (luser), 0.0, 0.5); gtk_table_attach (GTK_TABLE (parent), luser, 0, 1, - row + 2, row + 3, + row, row + 1, GTK_FILL, 0, 0, 0); user = gtk_entry_new (); gtk_widget_show (user); gtk_entry_set_text (GTK_ENTRY (user), username ? username : ""); gtk_table_attach (GTK_TABLE (parent), user, - 1, 2, row + 2, row + 3, + 1, 2, row, row + 1, GTK_EXPAND | GTK_FILL, 0, 0, 0); gtk_label_set_mnemonic_widget (GTK_LABEL (luser), user); @@ -303,10 +404,48 @@ oge_caldav (EPlugin *epl, G_CALLBACK (user_changed), source); + row++; g_free (uri); g_free (username); + /* add refresh option */ + label = gtk_label_new_with_mnemonic (_("Re_fresh:")); + gtk_widget_show (label); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_table_attach (GTK_TABLE (parent), label, 0, 1, row, row+1, GTK_FILL, 0, 0, 0); + + hbox = gtk_hbox_new (FALSE, 6); + gtk_widget_show (hbox); + + spin = gtk_spin_button_new_with_range (0, 100, 1); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), spin); + gtk_widget_show (spin); + gtk_box_pack_start (GTK_BOX (hbox), spin, FALSE, TRUE, 0); + + option = gtk_option_menu_new (); + gtk_widget_show (option); + times[0] = gtk_menu_item_new_with_label (_("minutes")); + times[1] = gtk_menu_item_new_with_label (_("hours")); + times[2] = gtk_menu_item_new_with_label (_("days")); + times[3] = gtk_menu_item_new_with_label (_("weeks")); + menu = gtk_menu_new (); + gtk_widget_show (menu); + for (i = 0; i < 4; i++) { + gtk_widget_show (times[i]); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), times[i]); + } + gtk_option_menu_set_menu (GTK_OPTION_MENU (option), menu); + set_refresh_time (source, spin, option); + gtk_box_pack_start (GTK_BOX (hbox), option, FALSE, TRUE, 0); + + g_object_set_data (G_OBJECT (option), "spin", spin); + g_signal_connect (G_OBJECT (option), "changed", G_CALLBACK (option_changed), source); + g_object_set_data (G_OBJECT (spin), "option", option); + g_signal_connect (G_OBJECT (spin), "value-changed", G_CALLBACK (spin_changed), source); + + gtk_table_attach (GTK_TABLE (parent), hbox, 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, 0, 0, 0); + return widget; } -- cgit v1.2.3 From c3bf6cb846d9fbc5751639ef698c29adaea32165 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 28 Nov 2008 12:20:23 +0000 Subject: ** Part of fix for bug #503662 2008-11-28 Milan Crha ** Part of fix for bug #503662 * caldav-source.c: (user_changed): Set NULL properly to protect against using already freed memory. svn path=/trunk/; revision=36821 --- plugins/caldav/caldav-source.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'plugins/caldav/caldav-source.c') diff --git a/plugins/caldav/caldav-source.c b/plugins/caldav/caldav-source.c index cd758f54bb..81e5b0fdd9 100644 --- a/plugins/caldav/caldav-source.c +++ b/plugins/caldav/caldav-source.c @@ -191,11 +191,12 @@ user_changed (GtkEntry *editable, ESource *source) euri = e_uri_new (uri); g_free (euri->user); - if (user != NULL) { + if (user != NULL && *user) { euri->user = g_strdup (user); e_source_set_property (source, "auth", "1"); } else { e_source_set_property (source, "auth", NULL); + euri->user = NULL; } e_source_set_property (source, "username", euri->user); -- cgit v1.2.3 From 4c4c720bc836942d471d272bce48f00959ea9742 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 8 Dec 2008 11:05:08 +0000 Subject: ** Fix for bug #562990 2008-12-08 Milan Crha ** Fix for bug #562990 * caldav-source.c: (user_changed), (oge_caldav): Use 'username' property of the ESource to read/write user name, not the uri. svn path=/trunk/; revision=36850 --- plugins/caldav/caldav-source.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'plugins/caldav/caldav-source.c') diff --git a/plugins/caldav/caldav-source.c b/plugins/caldav/caldav-source.c index 81e5b0fdd9..6fb7ea3841 100644 --- a/plugins/caldav/caldav-source.c +++ b/plugins/caldav/caldav-source.c @@ -190,16 +190,15 @@ user_changed (GtkEntry *editable, ESource *source) euri = e_uri_new (uri); g_free (euri->user); + euri->user = NULL; if (user != NULL && *user) { - euri->user = g_strdup (user); e_source_set_property (source, "auth", "1"); } else { e_source_set_property (source, "auth", NULL); - euri->user = NULL; } - e_source_set_property (source, "username", euri->user); + e_source_set_property (source, "username", user); ruri = print_uri_noproto (euri); e_source_set_relative_uri (source, ruri); g_free (ruri); @@ -328,10 +327,12 @@ oge_caldav (EPlugin *epl, return NULL; } - username = euri->user; + g_free (euri->user); euri->user = NULL; uri = e_uri_to_string (euri, FALSE); + username = e_source_get_duped_property (source, "username"); + ssl_prop = e_source_get_property (source, "ssl"); if (ssl_prop && ssl_prop[0] == '1') { ssl_enabled = TRUE; -- cgit v1.2.3 From 8a072ffc7c0ddcde472877a51ace0bb14f86fb0a Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 24 Apr 2009 11:45:21 +0200 Subject: GN-bug #572348 - Removed deprecated Gtk+ symbols Some still left, because those gone in kill-bonobo branch. --- plugins/caldav/caldav-source.c | 56 ++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 32 deletions(-) (limited to 'plugins/caldav/caldav-source.c') diff --git a/plugins/caldav/caldav-source.c b/plugins/caldav/caldav-source.c index 6fb7ea3841..00ca5acac5 100644 --- a/plugins/caldav/caldav-source.c +++ b/plugins/caldav/caldav-source.c @@ -206,7 +206,7 @@ user_changed (GtkEntry *editable, ESource *source) } static void -set_refresh_time (ESource *source, GtkWidget *spin, GtkWidget *option) +set_refresh_time (ESource *source, GtkWidget *spin, GtkWidget *combobox) { int time; int item_num = 0; @@ -226,15 +226,15 @@ set_refresh_time (ESource *source, GtkWidget *spin, GtkWidget *option) item_num = 1; time /= 60; } - gtk_option_menu_set_history (GTK_OPTION_MENU (option), item_num); + gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), item_num); gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin), time); } static char * -get_refresh_minutes (GtkWidget *spin, GtkWidget *option) +get_refresh_minutes (GtkWidget *spin, GtkWidget *combobox) { int setting = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spin)); - switch (gtk_option_menu_get_history (GTK_OPTION_MENU (option))) { + switch (gtk_combo_box_get_active (GTK_COMBO_BOX (combobox))) { case 0: /* minutes */ break; @@ -262,24 +262,24 @@ static void spin_changed (GtkSpinButton *spin, ESource *source) { char *refresh_str; - GtkWidget *option; + GtkWidget *combobox; - option = g_object_get_data (G_OBJECT (spin), "option"); + combobox = g_object_get_data (G_OBJECT (spin), "combobox"); - refresh_str = get_refresh_minutes ((GtkWidget *) spin, option); + refresh_str = get_refresh_minutes ((GtkWidget *) spin, combobox); e_source_set_property (source, "refresh", refresh_str); g_free (refresh_str); } static void -option_changed (GtkOptionMenu *option, ESource *source) +combobox_changed (GtkComboBox *combobox, ESource *source) { char *refresh_str; GtkWidget *spin; - spin = g_object_get_data (G_OBJECT (option), "spin"); + spin = g_object_get_data (G_OBJECT (combobox), "spin"); - refresh_str = get_refresh_minutes (spin, (GtkWidget *) option); + refresh_str = get_refresh_minutes (spin, (GtkWidget *) combobox); e_source_set_property (source, "refresh", refresh_str); g_free (refresh_str); } @@ -299,13 +299,12 @@ oge_caldav (EPlugin *epl, GtkWidget *widget; GtkWidget *luser; GtkWidget *user; - GtkWidget *label, *hbox, *spin, *option, *menu; - GtkWidget *times[4]; + GtkWidget *label, *hbox, *spin, *combobox; char *uri; char *username; const char *ssl_prop; gboolean ssl_enabled; - int row, i; + int row; source = t->source; group = e_source_peek_group (source); @@ -425,25 +424,18 @@ oge_caldav (EPlugin *epl, gtk_widget_show (spin); gtk_box_pack_start (GTK_BOX (hbox), spin, FALSE, TRUE, 0); - option = gtk_option_menu_new (); - gtk_widget_show (option); - times[0] = gtk_menu_item_new_with_label (_("minutes")); - times[1] = gtk_menu_item_new_with_label (_("hours")); - times[2] = gtk_menu_item_new_with_label (_("days")); - times[3] = gtk_menu_item_new_with_label (_("weeks")); - menu = gtk_menu_new (); - gtk_widget_show (menu); - for (i = 0; i < 4; i++) { - gtk_widget_show (times[i]); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), times[i]); - } - gtk_option_menu_set_menu (GTK_OPTION_MENU (option), menu); - set_refresh_time (source, spin, option); - gtk_box_pack_start (GTK_BOX (hbox), option, FALSE, TRUE, 0); - - g_object_set_data (G_OBJECT (option), "spin", spin); - g_signal_connect (G_OBJECT (option), "changed", G_CALLBACK (option_changed), source); - g_object_set_data (G_OBJECT (spin), "option", option); + combobox = gtk_combo_box_new_text (); + gtk_widget_show (combobox); + gtk_combo_box_append_text (GTK_COMBO_BOX (combobox), _("minutes")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combobox), _("hours")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combobox), _("days")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combobox), _("weeks")); + set_refresh_time (source, spin, combobox); + gtk_box_pack_start (GTK_BOX (hbox), combobox, FALSE, TRUE, 0); + + g_object_set_data (G_OBJECT (combobox), "spin", spin); + g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (combobox_changed), source); + g_object_set_data (G_OBJECT (spin), "combobox", combobox); g_signal_connect (G_OBJECT (spin), "value-changed", G_CALLBACK (spin_changed), source); gtk_table_attach (GTK_TABLE (parent), hbox, 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, 0, 0, 0); -- cgit v1.2.3