aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs
diff options
context:
space:
mode:
authorJP Rosevear <jpr@ximian.com>2001-11-07 23:43:32 +0800
committerJP Rosevear <jpr@src.gnome.org>2001-11-07 23:43:32 +0800
commitf7c509da222e019b85e30621d4ee455335195379 (patch)
treed4535a3967e23db6961078c805617bab22660bd0 /calendar/gui/dialogs
parent68459c289cc021f255ad780b9221bcde1d3952e9 (diff)
downloadgsoc2013-evolution-f7c509da222e019b85e30621d4ee455335195379.tar.gz
gsoc2013-evolution-f7c509da222e019b85e30621d4ee455335195379.tar.zst
gsoc2013-evolution-f7c509da222e019b85e30621d4ee455335195379.zip
make sure to remove all attendees from the model when we edit a new comp,
2001-11-06 JP Rosevear <jpr@ximian.com> * gui/dialogs/event-editor.c (event_editor_edit_comp): make sure to remove all attendees from the model when we edit a new comp, append the pages if they are needed and we weren't showing them before * gui/dialogs/task-editor.c (task_editor_edit_comp): same as above * gui/dialogs/comp-editor.c (comp_editor_remove_page): check for a return value indicating the page was not found and return if so svn path=/trunk/; revision=14615
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r--calendar/gui/dialogs/comp-editor.c6
-rw-r--r--calendar/gui/dialogs/event-editor.c20
-rw-r--r--calendar/gui/dialogs/task-editor.c6
3 files changed, 22 insertions, 10 deletions
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index 9e07e7a2cf..b3b934996c 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
@@ -583,12 +583,14 @@ comp_editor_remove_page (CompEditor *editor, CompEditorPage *page)
priv = editor->priv;
page_widget = comp_editor_page_get_widget (page);
-
+ page_num = gtk_notebook_page_num (priv->notebook, page_widget);
+ if (page_num == -1)
+ return;
+
/* Disconnect all the signals added in append_page(). */
gtk_signal_disconnect_by_data (GTK_OBJECT (page), editor);
gtk_signal_disconnect_by_data (GTK_OBJECT (page_widget), page);
- page_num = gtk_notebook_page_num (priv->notebook, page_widget);
gtk_notebook_remove_page (priv->notebook, page_num);
priv->pages = g_list_remove (priv->pages, page);
diff --git a/calendar/gui/dialogs/event-editor.c b/calendar/gui/dialogs/event-editor.c
index b592606dec..7fa48546cc 100644
--- a/calendar/gui/dialogs/event-editor.c
+++ b/calendar/gui/dialogs/event-editor.c
@@ -244,24 +244,34 @@ event_editor_edit_comp (CompEditor *editor, CalComponent *comp)
priv->updating = TRUE;
priv->existing_org = cal_component_has_organizer (comp);
-
cal_component_get_attendee_list (comp, &attendees);
+
+ e_meeting_model_remove_all_attendees (priv->model);
if (attendees == NULL) {
comp_editor_remove_page (editor, COMP_EDITOR_PAGE (priv->meet_page));
comp_editor_remove_page (editor, COMP_EDITOR_PAGE (priv->sched_page));
- e_meeting_model_remove_all_attendees (priv->model);
priv->meeting_shown = FALSE;
} else {
GSList *l;
+ if (!priv->meeting_shown) {
+ comp_editor_append_page (COMP_EDITOR (ee),
+ COMP_EDITOR_PAGE (priv->sched_page),
+ _("Scheduling"));
+ comp_editor_append_page (COMP_EDITOR (ee),
+ COMP_EDITOR_PAGE (priv->meet_page),
+ _("Meeting"));
+ }
+
for (l = attendees; l != NULL; l = l->next) {
CalComponentAttendee *ca = l->data;
- EMeetingAttendee *ia = E_MEETING_ATTENDEE (e_meeting_attendee_new_from_cal_component_attendee (ca));
-
+ EMeetingAttendee *ia;
+
+ ia = E_MEETING_ATTENDEE (e_meeting_attendee_new_from_cal_component_attendee (ca));
e_meeting_model_add_attendee (priv->model, ia);
gtk_object_unref (GTK_OBJECT (ia));
}
- priv->meeting_shown = TRUE;
+ priv->meeting_shown = TRUE;
}
cal_component_free_attendee_list (attendees);
diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c
index 9956137c4c..e59582873f 100644
--- a/calendar/gui/dialogs/task-editor.c
+++ b/calendar/gui/dialogs/task-editor.c
@@ -212,11 +212,11 @@ task_editor_edit_comp (CompEditor *editor, CalComponent *comp)
priv->updating = TRUE;
priv->existing_org = cal_component_has_organizer (comp);
-
cal_component_get_attendee_list (comp, &attendees);
+
+ e_meeting_model_remove_all_attendees (priv->model);
if (attendees == NULL) {
- if (priv->meeting_shown)
- comp_editor_remove_page (editor, COMP_EDITOR_PAGE (priv->meet_page));
+ comp_editor_remove_page (editor, COMP_EDITOR_PAGE (priv->meet_page));
priv->meeting_shown = FALSE;
} else {
GSList *l;