aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/ChangeLog2
-rw-r--r--calendar/gui/dialogs/calendar-setup.c23
2 files changed, 24 insertions, 1 deletions
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 <lewing@ximian.com>
* 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;