Skip to content

Commit 3d95d9e

Browse files
authored
Merge pull request ankitects#799 from hgiesel/cal
Introduce Browser.search_for and Browser.update_search
2 parents fe5c4a2 + 9e44b2b commit 3d95d9e

File tree

1 file changed

+21
-22
lines changed

1 file changed

+21
-22
lines changed

qt/aqt/browser.py

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -766,10 +766,8 @@ def setupSearch(self):
766766
self.form.searchEdit.addItems(
767767
[self._searchPrompt] + self.mw.pm.profile["searchHistory"]
768768
)
769-
self._lastSearchTxt = "is:current"
770-
self.search()
769+
self.search_for("is:current", self._searchPrompt)
771770
# then replace text for easily showing the deck
772-
self.form.searchEdit.lineEdit().setText(self._searchPrompt)
773771
self.form.searchEdit.lineEdit().selectAll()
774772
self.form.searchEdit.setFocus()
775773

@@ -778,26 +776,30 @@ def onSearchActivated(self):
778776
self.editor.saveNow(self._onSearchActivated)
779777

780778
def _onSearchActivated(self):
779+
# grab search text and normalize
780+
prompt = self.form.searchEdit.lineEdit().text()
781+
781782
# convert guide text before we save history
782-
if self.form.searchEdit.lineEdit().text() == self._searchPrompt:
783-
self.form.searchEdit.lineEdit().setText("deck:current ")
783+
txt = "deck:current " if prompt == self._searchPrompt else prompt
784+
self.update_history(txt)
784785

785-
# grab search text and normalize
786-
txt = self.form.searchEdit.lineEdit().text()
786+
# keep track of search string so that we reuse identical search when
787+
# refreshing, rather than whatever is currently in the search field
788+
self.search_for(txt)
787789

788-
# update history
790+
def update_history(self, search: str) -> None:
789791
sh = self.mw.pm.profile["searchHistory"]
790-
if txt in sh:
791-
sh.remove(txt)
792-
sh.insert(0, txt)
792+
if search in sh:
793+
sh.remove(search)
794+
sh.insert(0, search)
793795
sh = sh[:30]
794796
self.form.searchEdit.clear()
795797
self.form.searchEdit.addItems(sh)
796798
self.mw.pm.profile["searchHistory"] = sh
797799

798-
# keep track of search string so that we reuse identical search when
799-
# refreshing, rather than whatever is currently in the search field
800-
self._lastSearchTxt = txt
800+
def search_for(self, search: str, prompt: Optional[str] = None) -> None:
801+
self._lastSearchTxt = search
802+
self.form.searchEdit.lineEdit().setText(prompt or search)
801803
self.search()
802804

803805
# search triggered programmatically. caller must have saved note first.
@@ -1787,13 +1789,13 @@ def selectNotes(self):
17871789

17881790
def _selectNotes(self):
17891791
nids = self.selectedNotes()
1790-
# bypass search history
1791-
self._lastSearchTxt = "nid:" + ",".join([str(x) for x in nids])
1792-
self.form.searchEdit.lineEdit().setText(self._lastSearchTxt)
17931792
# clear the selection so we don't waste energy preserving it
17941793
tv = self.form.tableView
17951794
tv.selectionModel().clear()
1796-
self.search()
1795+
1796+
search = "nid:" + ",".join([str(x) for x in nids])
1797+
self.search_for(search)
1798+
17971799
tv.selectAll()
17981800

17991801
def invertSelection(self):
@@ -2016,10 +2018,7 @@ def _onTagDupes(self, res):
20162018
tooltip(_("Notes tagged."))
20172019

20182020
def dupeLinkClicked(self, link):
2019-
self.form.searchEdit.lineEdit().setText(link)
2020-
# manually, because we've already saved
2021-
self._lastSearchTxt = link
2022-
self.search()
2021+
self.search_for(link)
20232022
self.onNote()
20242023

20252024
# Jumping

0 commit comments

Comments
 (0)