mirror of
https://github.com/ankitects/anki.git
synced 2025-11-08 13:47:13 -05:00
Merge pull request #802 from abdnh/ensure-non-empty-names
Ensure non-empty names in the backend
This commit is contained in:
commit
c86711e2d6
4 changed files with 27 additions and 10 deletions
|
|
@ -581,7 +581,7 @@ class CardLayout(QDialog):
|
||||||
|
|
||||||
def onRename(self):
|
def onRename(self):
|
||||||
template = self.current_template()
|
template = self.current_template()
|
||||||
name = getOnlyText(_("New name:"), default=template["name"]).strip('"')
|
name = getOnlyText(_("New name:"), default=template["name"]).replace('"', "")
|
||||||
if not name.strip():
|
if not name.strip():
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ class FieldDialog(QDialog):
|
||||||
self.loadField(idx)
|
self.loadField(idx)
|
||||||
|
|
||||||
def _uniqueName(self, prompt, ignoreOrd=None, old=""):
|
def _uniqueName(self, prompt, ignoreOrd=None, old=""):
|
||||||
txt = getOnlyText(prompt, default=old).strip('"')
|
txt = getOnlyText(prompt, default=old).replace('"', "")
|
||||||
if not txt:
|
if not txt:
|
||||||
return
|
return
|
||||||
for f in self.model["flds"]:
|
for f in self.model["flds"]:
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,7 @@ class Models(QDialog):
|
||||||
def onRename(self) -> None:
|
def onRename(self) -> None:
|
||||||
nt = self.current_notetype()
|
nt = self.current_notetype()
|
||||||
txt = getText(_("New name:"), default=nt["name"])
|
txt = getText(_("New name:"), default=nt["name"])
|
||||||
name = txt[0].strip('"')
|
name = txt[0].replace('"', "")
|
||||||
if txt[1] and name:
|
if txt[1] and name:
|
||||||
nt["name"] = name
|
nt["name"] = name
|
||||||
self.saveAndRefresh(nt)
|
self.saveAndRefresh(nt)
|
||||||
|
|
@ -120,7 +120,7 @@ class Models(QDialog):
|
||||||
def onAdd(self) -> None:
|
def onAdd(self) -> None:
|
||||||
m = AddModel(self.mw, self).get()
|
m = AddModel(self.mw, self).get()
|
||||||
if m:
|
if m:
|
||||||
txt = getText(_("Name:"), default=m["name"])[0].strip('"')
|
txt = getText(_("Name:"), default=m["name"])[0].replace('"', "")
|
||||||
if txt:
|
if txt:
|
||||||
m["name"] = txt
|
m["name"] = txt
|
||||||
self.saveAndRefresh(m)
|
self.saveAndRefresh(m)
|
||||||
|
|
|
||||||
|
|
@ -227,9 +227,12 @@ impl NoteType {
|
||||||
if self.name.contains(bad_chars) {
|
if self.name.contains(bad_chars) {
|
||||||
self.name = self.name.replace(bad_chars, "");
|
self.name = self.name.replace(bad_chars, "");
|
||||||
}
|
}
|
||||||
|
if self.name.is_empty() {
|
||||||
|
return Err(AnkiError::invalid_input("Empty note type name"));
|
||||||
|
}
|
||||||
self.normalize_names();
|
self.normalize_names();
|
||||||
self.fix_field_names();
|
self.fix_field_names()?;
|
||||||
self.fix_template_names();
|
self.fix_template_names()?;
|
||||||
self.ensure_names_unique();
|
self.ensure_names_unique();
|
||||||
self.reposition_sort_idx();
|
self.reposition_sort_idx();
|
||||||
|
|
||||||
|
|
@ -323,12 +326,26 @@ impl NoteType {
|
||||||
DeckID(self.config.target_deck_id)
|
DeckID(self.config.target_deck_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn fix_field_names(&mut self) {
|
fn fix_field_names(&mut self) -> Result<()> {
|
||||||
self.fields.iter_mut().for_each(NoteField::fix_name);
|
for mut f in &mut self.fields {
|
||||||
|
NoteField::fix_name(&mut f);
|
||||||
|
if f.name.is_empty() {
|
||||||
|
return Err(AnkiError::invalid_input("Empty field name"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn fix_template_names(&mut self) {
|
fn fix_template_names(&mut self) -> Result<()> {
|
||||||
self.templates.iter_mut().for_each(CardTemplate::fix_name);
|
for mut t in &mut self.templates {
|
||||||
|
CardTemplate::fix_name(&mut t);
|
||||||
|
if t.name.is_empty() {
|
||||||
|
return Err(AnkiError::invalid_input("Empty template name"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Find the field index of the provided field name.
|
/// Find the field index of the provided field name.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue