Keep the list of duplicates up-to-date before tagging (#1404)

* keep the list of dupes up-to-date before tagging

* get rid of a redundant parameter

* unnecessary lambda
This commit is contained in:
Ren Tatsumoto 2021-10-07 02:49:41 +00:00 committed by GitHub
parent b9251290ca
commit 48f8427592
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -46,6 +46,7 @@ class FindDuplicatesDialog(QDialog):
form.fields.addItems(fields) form.fields.addItems(fields)
restore_combo_index_for_session(form.fields, fields, "findDupesFields") restore_combo_index_for_session(form.fields, fields, "findDupesFields")
self._dupesButton: QPushButton | None = None self._dupesButton: QPushButton | None = None
self._dupes: list[tuple[str, list[NoteId]]] = []
# links # links
form.webView.set_title("find duplicates") form.webView.set_title("find duplicates")
@ -76,11 +77,12 @@ class FindDuplicatesDialog(QDialog):
self.show() self.show()
def show_duplicates_report(self, dupes: list[tuple[str, list[NoteId]]]) -> None: def show_duplicates_report(self, dupes: list[tuple[str, list[NoteId]]]) -> None:
self._dupes = dupes
if not self._dupesButton: if not self._dupesButton:
self._dupesButton = b = self.form.buttonBox.addButton( self._dupesButton = b = self.form.buttonBox.addButton(
tr.browsing_tag_duplicates(), QDialogButtonBox.ActionRole tr.browsing_tag_duplicates(), QDialogButtonBox.ActionRole
) )
qconnect(b.clicked, lambda: self._tag_duplicates(dupes)) qconnect(b.clicked, self._tag_duplicates)
text = "" text = ""
groups = len(dupes) groups = len(dupes)
notes = sum(len(r[1]) for r in dupes) notes = sum(len(r[1]) for r in dupes)
@ -104,12 +106,12 @@ class FindDuplicatesDialog(QDialog):
text += "</ol>" text += "</ol>"
self.form.webView.stdHtml(text, context=self) self.form.webView.stdHtml(text, context=self)
def _tag_duplicates(self, dupes: list[tuple[str, list[NoteId]]]) -> None: def _tag_duplicates(self) -> None:
if not dupes: if not self._dupes:
return return
note_ids = set() note_ids = set()
for _, nids in dupes: for _, nids in self._dupes:
note_ids.update(nids) note_ids.update(nids)
add_tags_to_notes( add_tags_to_notes(