aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r--calendar/gui/dialogs/event-editor.c11
-rw-r--r--calendar/gui/dialogs/event-editor.h2
-rw-r--r--calendar/gui/dialogs/meeting-page.c13
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);