evolution r37123 - in trunk/calendar: . gui gui/dialogs



Author: mcrha
Date: Fri Jan 23 11:41:55 2009
New Revision: 37123
URL: http://svn.gnome.org/viewvc/evolution?rev=37123&view=rev

Log:
2009-01-23  Milan Crha  <mcrha redhat com>

	** Fix for bug #442869

	* gui/dialogs/task-page.c: (attendee_added_cb):
	* gui/dialogs/event-page.c: (attendee_added_cb): Do not work
	with NULL delegator and do not set 'delfrom' with two MAILTO.
	* gui/e-meeting-list-view.c: (name_selector_dialog_close_cb):
	Delete attendee only if we have enough rights for it.



Modified:
   trunk/calendar/ChangeLog
   trunk/calendar/gui/dialogs/event-page.c
   trunk/calendar/gui/dialogs/task-page.c
   trunk/calendar/gui/e-meeting-list-view.c

Modified: trunk/calendar/gui/dialogs/event-page.c
==============================================================================
--- trunk/calendar/gui/dialogs/event-page.c	(original)
+++ trunk/calendar/gui/dialogs/event-page.c	Fri Jan 23 11:41:55 2009
@@ -1825,27 +1825,28 @@
 	client = comp_editor_get_client (editor);
 	flags = comp_editor_get_flags (editor);
 
-	if (flags & COMP_EDITOR_DELEGATE) {
-	   if (existing_attendee (ia, priv->comp))
-		   e_meeting_store_remove_attendee (priv->model, ia);
-	   else {
-		   if (!e_cal_get_static_capability (client,
-					   CAL_STATIC_CAPABILITY_DELEGATE_TO_MANY)) {
-			   const char *delegator_id = e_meeting_attendee_get_delfrom (ia);
-			   EMeetingAttendee *delegator;
-
-			   delegator = e_meeting_store_find_attendee (priv->model, delegator_id, NULL);
-			   e_meeting_attendee_set_delto (delegator,
-					   g_strdup (e_meeting_attendee_get_address (ia)));
-
-			   e_meeting_attendee_set_delfrom (ia, g_strdup_printf ("MAILTO:%s", delegator_id));
-			   gtk_widget_set_sensitive (priv->invite, FALSE);
-			   gtk_widget_set_sensitive (priv->add, FALSE);
-			   gtk_widget_set_sensitive (priv->edit, FALSE);
-		   }
-	   }
-}
+	if (!(flags & COMP_EDITOR_DELEGATE))
+		return;
+
+	if (existing_attendee (ia, priv->comp)) {
+		e_meeting_store_remove_attendee (priv->model, ia);
+	} else {
+		if (!e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_DELEGATE_TO_MANY)) {
+			const char *delegator_id = e_meeting_attendee_get_delfrom (ia);
+			EMeetingAttendee *delegator;
+
+			delegator = e_meeting_store_find_attendee (priv->model, delegator_id, NULL);
 
+			g_return_if_fail (delegator != NULL);
+
+			e_meeting_attendee_set_delto (delegator, g_strdup (e_meeting_attendee_get_address (ia)));
+
+			e_meeting_attendee_set_delfrom (ia, g_strdup (delegator_id));
+			gtk_widget_set_sensitive (priv->invite, FALSE);
+			gtk_widget_set_sensitive (priv->add, FALSE);
+			gtk_widget_set_sensitive (priv->edit, FALSE);
+		}
+	}
 }
 
 /* Callbacks for list view*/

Modified: trunk/calendar/gui/dialogs/task-page.c
==============================================================================
--- trunk/calendar/gui/dialogs/task-page.c	(original)
+++ trunk/calendar/gui/dialogs/task-page.c	Fri Jan 23 11:41:55 2009
@@ -1160,8 +1160,11 @@
 			EMeetingAttendee *delegator;
 
 			delegator = e_meeting_store_find_attendee (priv->model, delegator_id, NULL);
+
+			g_return_if_fail (delegator != NULL);
+
 			e_meeting_attendee_set_delto (delegator,
-				   g_strdup (e_meeting_attendee_get_address (ia)));
+				g_strdup (e_meeting_attendee_get_address (ia)));
 
 			gtk_widget_set_sensitive (priv->invite, FALSE);
 			gtk_widget_set_sensitive (priv->add, FALSE);

Modified: trunk/calendar/gui/e-meeting-list-view.c
==============================================================================
--- trunk/calendar/gui/e-meeting-list-view.c	(original)
+++ trunk/calendar/gui/e-meeting-list-view.c	Fri Jan 23 11:41:55 2009
@@ -898,8 +898,12 @@
 
 		ma = e_meeting_store_find_attendee (store, email, &i);
 
-		if (ma)
-			e_meeting_store_remove_attendee (store, ma);
+		if (ma) {
+			if (e_meeting_attendee_get_edit_level (ma) != E_MEETING_ATTENDEE_EDIT_FULL)
+				g_warning ("Not enough rights to delete attendee: %s\n", e_meeting_attendee_get_address (ma));
+			else
+				e_meeting_store_remove_attendee (store, ma);
+		}
 	}
 
 	g_slist_free (la);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]