diff --git a/src/data/action/keyword.cpp b/src/data/action/keyword.cpp index bf325238..23ec0229 100644 --- a/src/data/action/keyword.cpp +++ b/src/data/action/keyword.cpp @@ -52,8 +52,10 @@ void AddKeywordAction::perform(bool to_undo) { // ----------------------------------------------------------------------------- : Changing keywords -KeywordReminderTextValue::KeywordReminderTextValue(const TextFieldP& field, Keyword* keyword, bool editable) +KeywordReminderTextValue::KeywordReminderTextValue(Set& set, const TextFieldP& field, Keyword* keyword, bool editable) : KeywordTextValue(field, keyword, &keyword->reminder.getUnparsed(), editable) + , set(set) + , keyword(*keyword) {} void KeywordReminderTextValue::store() { @@ -67,10 +69,12 @@ void KeywordReminderTextValue::store() { vector parse_errors; ScriptP new_script = parse(new_value, nullptr, true, parse_errors); if (parse_errors.empty()) { - // parsed okay, assign - errors.clear(); - keyword.reminder.getScriptP() = new_script; - keyword.reminder.getUnparsed() = new_value; + // parsed okay + if (checkScript(new_script)) { + // also runs okay, assign + keyword.reminder.getScriptP() = new_script; + keyword.reminder.getUnparsed() = new_value; + } } else { // parse errors, report errors = ScriptParseErrors(parse_errors).what(); @@ -172,6 +176,23 @@ void KeywordReminderTextValue::highlight(const String& code, const vector