mirror of
https://github.com/ankitects/anki.git
synced 2025-12-10 21:36:55 -05:00
Simplify name (#1620)
* NF: rename "fields" into "field_names" for clarity * NF: remove an useless enumerate the integral value was never used * NF: rename new and old into new_note and old_note for clarity * NF: rename old_field to old_field_value for clarity
This commit is contained in:
parent
d571ae29f0
commit
62fd5b2b42
1 changed files with 25 additions and 19 deletions
|
|
@ -149,40 +149,46 @@ class AddCards(QMainWindow):
|
|||
self._last_added_note = None
|
||||
|
||||
# copy fields into new note with the new notetype
|
||||
old = self.editor.note
|
||||
new = self._new_note()
|
||||
if old:
|
||||
old_fields = list(old.keys())
|
||||
new_fields = list(new.keys())
|
||||
copied_fields = set()
|
||||
for n, f in enumerate(new.note_type()["flds"]):
|
||||
old_note = self.editor.note
|
||||
new_note = self._new_note()
|
||||
if old_note:
|
||||
old_field_names = list(old_note.keys())
|
||||
new_field_names = list(new_note.keys())
|
||||
copied_field_names = set()
|
||||
for f in new_note.note_type()["flds"]:
|
||||
field_name = f["name"]
|
||||
# copy identical non-empty fields
|
||||
if field_name in old_fields and old[field_name]:
|
||||
new[field_name] = old[field_name]
|
||||
copied_fields.add(field_name)
|
||||
if field_name in old_field_names and old_note[field_name]:
|
||||
new_note[field_name] = old_note[field_name]
|
||||
copied_field_names.add(field_name)
|
||||
new_idx = 0
|
||||
for old_idx, old_field in enumerate(old_fields):
|
||||
for old_idx, old_field_value in enumerate(old_field_names):
|
||||
# skip previously copied identical fields in new note
|
||||
while (
|
||||
new_idx < len(new_fields) and new_fields[new_idx] in copied_fields
|
||||
new_idx < len(new_field_names)
|
||||
and new_field_names[new_idx] in copied_field_names
|
||||
):
|
||||
new_idx += 1
|
||||
if new_idx >= len(new_fields):
|
||||
if new_idx >= len(new_field_names):
|
||||
break
|
||||
# copy non-empty old fields
|
||||
if not old_field in copied_fields and old.fields[old_idx]:
|
||||
new.fields[new_idx] = old.fields[old_idx]
|
||||
if (
|
||||
not old_field_value in copied_field_names
|
||||
and old_note.fields[old_idx]
|
||||
):
|
||||
new_note.fields[new_idx] = old_note.fields[old_idx]
|
||||
new_idx += 1
|
||||
|
||||
new.tags = old.tags
|
||||
new_note.tags = old_note.tags
|
||||
|
||||
# and update editor state
|
||||
self.editor.note = new
|
||||
self.editor.note = new_note
|
||||
self.editor.loadNote(
|
||||
focusTo=min(self.editor.last_field_index or 0, len(new.fields) - 1)
|
||||
focusTo=min(self.editor.last_field_index or 0, len(new_note.fields) - 1)
|
||||
)
|
||||
gui_hooks.add_cards_did_change_note_type(
|
||||
old_note.note_type(), new_note.note_type()
|
||||
)
|
||||
gui_hooks.add_cards_did_change_note_type(old.note_type(), new.note_type())
|
||||
|
||||
def _load_new_note(self, sticky_fields_from: Optional[Note] = None) -> None:
|
||||
note = self._new_note()
|
||||
|
|
|
|||
Loading…
Reference in a new issue