diff --git a/ftl/core/fields.ftl b/ftl/core/fields.ftl index ddeb41e33..1e2a002b4 100644 --- a/ftl/core/fields.ftl +++ b/ftl/core/fields.ftl @@ -12,3 +12,5 @@ fields-reverse-text-direction-rtl = Reverse text direction (RTL) fields-size = Size: fields-sort-by-this-field-in-the = Sort by this field in the browser fields-that-field-name-is-already-used = That field name is already used. +fields-name-first-letter-not-valid = The field name should not start with #, ^ or /. +fields-name-invalid-letter = The field name should not contain :, ", { or }. diff --git a/qt/aqt/fields.py b/qt/aqt/fields.py index fc9235d0e..2cd977c3d 100644 --- a/qt/aqt/fields.py +++ b/qt/aqt/fields.py @@ -82,9 +82,16 @@ class FieldDialog(QDialog): self.loadField(idx) def _uniqueName(self, prompt, ignoreOrd=None, old=""): - txt = getOnlyText(prompt, default=old).replace('"', "") + txt = getOnlyText(prompt, default=old).replace('"', "").strip() if not txt: return + if txt[0] in "#^/": + showWarning(tr(TR.FIELDS_NAME_FIRST_LETTER_NOT_VALID)) + return + for letter in """:{"}""": + if letter in txt: + showWarning(tr(TR.FIELDS_NAME_INVALID_LETTER)) + return for f in self.model["flds"]: if ignoreOrd is not None and f["ord"] == ignoreOrd: continue