aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs/comp-editor.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/dialogs/comp-editor.c')
-rw-r--r--calendar/gui/dialogs/comp-editor.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index 172e79a1fe..d5190ba8ba 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
@@ -958,6 +958,18 @@ action_save_cb (GtkAction *action,
return;
}
+ if ((comp_editor_get_flags (editor) & COMP_EDITOR_IS_ASSIGNED) != 0
+ && e_cal_component_get_vtype (priv->comp) == E_CAL_COMPONENT_TODO
+ && e_client_check_capability (E_CLIENT (priv->cal_client), CAL_STATIC_CAPABILITY_NO_TASK_ASSIGNMENT)) {
+ e_alert_submit (
+ E_ALERT_SINK (editor),
+ "calendar:prompt-no-task-assignment-editor",
+ e_source_peek_name (
+ e_client_get_source (E_CLIENT (priv->cal_client))),
+ NULL);
+ return;
+ }
+
commit_all_fields (editor);
if (e_cal_component_has_recurrences (priv->comp)) {
if (!recur_component_dialog (
@@ -2214,6 +2226,18 @@ prompt_and_save_changes (CompEditor *editor,
return FALSE;
}
+ if ((comp_editor_get_flags (editor) & COMP_EDITOR_IS_ASSIGNED) != 0
+ && e_cal_component_get_vtype (priv->comp) == E_CAL_COMPONENT_TODO
+ && e_client_check_capability (E_CLIENT (priv->cal_client), CAL_STATIC_CAPABILITY_NO_TASK_ASSIGNMENT)) {
+ e_alert_submit (
+ E_ALERT_SINK (editor),
+ "calendar:prompt-no-task-assignment-editor",
+ e_source_peek_name (
+ e_client_get_source (E_CLIENT (priv->cal_client))),
+ NULL);
+ return FALSE;
+ }
+
comp = comp_editor_get_current_comp (editor, &correct);
e_cal_component_get_summary (comp, &text);
g_object_unref (comp);