diff options
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r-- | calendar/gui/dialogs/event-editor.c | 11 | ||||
-rw-r--r-- | calendar/gui/dialogs/event-editor.h | 2 | ||||
-rw-r--r-- | calendar/gui/dialogs/meeting-page.c | 13 |
3 files changed, 13 insertions, 13 deletions
diff --git a/calendar/gui/dialogs/event-editor.c b/calendar/gui/dialogs/event-editor.c index 8d1b89cb15..d520fd809b 100644 --- a/calendar/gui/dialogs/event-editor.c +++ b/calendar/gui/dialogs/event-editor.c @@ -47,7 +47,7 @@ struct _EventEditorPrivate { SchedulePage *sched_page; EMeetingStore *model; - + gboolean is_meeting; gboolean meeting_shown; gboolean updating; }; @@ -205,11 +205,8 @@ event_editor_edit_comp (CompEditor *editor, ECalComponent *comp) e_cal_component_get_organizer (comp, &organizer); e_cal_component_get_attendee_list (comp, &attendees); - /* Clear things up */ - e_meeting_store_remove_all_attendees (priv->model); - /* Set up the attendees */ - if (attendees == NULL) { + if (attendees == NULL && !priv->is_meeting) { comp_editor_remove_page (editor, COMP_EDITOR_PAGE (priv->meet_page)); comp_editor_remove_page (editor, COMP_EDITOR_PAGE (priv->sched_page)); priv->meeting_shown = FALSE; @@ -344,11 +341,12 @@ event_editor_finalize (GObject *object) * editor could not be created. **/ EventEditor * -event_editor_new (ECal *client) +event_editor_new (ECal *client, gboolean is_meeting) { EventEditor *ee; ee = EVENT_EDITOR (g_object_new (TYPE_EVENT_EDITOR, NULL)); + ee->priv->is_meeting = is_meeting; return event_editor_construct (ee, client); } @@ -382,7 +380,6 @@ event_editor_show_meeting (EventEditor *ee) g_return_if_fail (ee != NULL); g_return_if_fail (IS_EVENT_EDITOR (ee)); - show_meeting (ee); } diff --git a/calendar/gui/dialogs/event-editor.h b/calendar/gui/dialogs/event-editor.h index 9234b8310e..0f934c28f2 100644 --- a/calendar/gui/dialogs/event-editor.h +++ b/calendar/gui/dialogs/event-editor.h @@ -53,7 +53,7 @@ struct _EventEditorClass { GtkType event_editor_get_type (void); EventEditor *event_editor_construct (EventEditor *ee, ECal *client); -EventEditor *event_editor_new (ECal *client); +EventEditor *event_editor_new (ECal *client, gboolean is_meeting); void event_editor_show_meeting (EventEditor *ee); diff --git a/calendar/gui/dialogs/meeting-page.c b/calendar/gui/dialogs/meeting-page.c index 241712a006..19faebaec4 100644 --- a/calendar/gui/dialogs/meeting-page.c +++ b/calendar/gui/dialogs/meeting-page.c @@ -305,12 +305,15 @@ clear_widgets (MeetingPage *mpage) static void sensitize_widgets (MeetingPage *mpage) { - gboolean read_only; + gboolean read_only = FALSE, user_org; MeetingPagePrivate *priv = mpage->priv; - - if (!e_cal_is_read_only (COMP_EDITOR_PAGE (mpage)->client, &read_only, NULL)) - read_only = TRUE; - + GError *error = NULL; + + if (!e_cal_is_read_only (COMP_EDITOR_PAGE (mpage)->client, &read_only, &error)) { + if (error->code != E_CALENDAR_STATUS_BUSY) + read_only = TRUE; + g_error_free (error); + } gtk_widget_set_sensitive (priv->organizer, !read_only); gtk_widget_set_sensitive (priv->existing_organizer_btn, !read_only); gtk_widget_set_sensitive (priv->add, !read_only && priv->user_org); |