From 7844d71521c917e28a0aa369f7881aeab9820604 Mon Sep 17 00:00:00 2001 From: Larry Ewing Date: Tue, 4 May 2004 20:40:43 +0000 Subject: (source_group_can_add): helper function to fix groupwise case. I'm still not happy with this but it will work for now. svn path=/trunk/; revision=25793 --- calendar/ChangeLog | 2 ++ calendar/gui/dialogs/calendar-setup.c | 23 ++++++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/calendar/ChangeLog b/calendar/ChangeLog index ce249b3f69..6e4ed7f378 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,6 +1,8 @@ 2004-05-04 Larry Ewing * gui/dialogs/calendar-setup.c: fix logic error. + (source_group_can_add): helper function to fix groupwise case. + I'm still not happy with this but it will work for now. * gui/dialogs/calendar-setup.c (source_to_dialog): convert units. (dialog_to_source): convert time units. diff --git a/calendar/gui/dialogs/calendar-setup.c b/calendar/gui/dialogs/calendar-setup.c index 7b5016788b..f2a8db178d 100644 --- a/calendar/gui/dialogs/calendar-setup.c +++ b/calendar/gui/dialogs/calendar-setup.c @@ -196,6 +196,27 @@ validate_remote_uri (const gchar *source_location, gboolean interactive, GtkWidg return TRUE; } +static gboolean +source_group_can_add (ESourceGroup *source_group) +{ + gboolean can_add; + EUri *uri; + + can_add = !e_source_group_is_readonly (source_group); + + if (can_add) { + uri = e_uri_new (e_source_group_peek_base_uri (source_group)); + + if (uri && uri->protocol && uri->protocol [0] && strcmp (uri->protocol, "groupwise")) + can_add = FALSE; + + if (uri) + e_uri_free (uri); + } + + return can_add; +} + static int source_group_menu_add_groups (GtkMenuShell *menu_shell, ESourceList *source_list) { @@ -209,7 +230,7 @@ source_group_menu_add_groups (GtkMenuShell *menu_shell, ESourceList *source_list menu_item = gtk_menu_item_new_with_label (e_source_group_peek_name (group)); gtk_widget_show (menu_item); - if (e_source_group_get_readonly(group)) + if (source_group_can_add (group)) gtk_widget_set_sensitive(menu_item, FALSE); else if (i == -1) index = i; -- cgit v1.2.3