diff options
Diffstat (limited to 'calendar/gui/dialogs/task-editor.c')
-rw-r--r-- | calendar/gui/dialogs/task-editor.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c index e3c55ffe29..6a95013370 100644 --- a/calendar/gui/dialogs/task-editor.c +++ b/calendar/gui/dialogs/task-editor.c @@ -129,27 +129,38 @@ static void set_menu_sens (TaskEditor *te) { TaskEditorPrivate *priv; - gboolean sens, existing, user; + gboolean sens, existing, user, read_only; priv = te->priv; existing = comp_editor_get_existing_org (COMP_EDITOR (te)); user = comp_editor_get_user_org (COMP_EDITOR (te)); + read_only = cal_client_is_read_only (comp_editor_get_cal_client (COMP_EDITOR (te))); - sens = priv->assignment_shown; + sens = priv->assignment_shown || read_only; comp_editor_set_ui_prop (COMP_EDITOR (te), "/commands/ActionAssignTask", "sensitive", sens ? "0" : "1"); - sens = priv->assignment_shown && existing && !user; + sens = priv->assignment_shown && existing && !user && !read_only; comp_editor_set_ui_prop (COMP_EDITOR (te), "/commands/ActionRefreshTask", "sensitive", sens ? "1" : "0"); - sens = priv->assignment_shown && existing && user; + sens = priv->assignment_shown && existing && user && !read_only; comp_editor_set_ui_prop (COMP_EDITOR (te), "/commands/ActionCancelTask", "sensitive", sens ? "1" : "0"); + + comp_editor_set_ui_prop (COMP_EDITOR (te), + "/commands/FileSave", + "sensitive", read_only ? "0" : "1"); + comp_editor_set_ui_prop (COMP_EDITOR (te), + "/commands/FileSaveAndClose", + "sensitive", read_only ? "0" : "1"); + comp_editor_set_ui_prop (COMP_EDITOR (te), + "/commands/FileDelete", + "sensitive", read_only ? "0" : "1"); } static void |