mirror of
https://github.com/ankitects/anki.git
synced 2025-09-25 01:06:35 -04:00
start focused on current deck/model in quick search
This commit is contained in:
parent
5f082dfae5
commit
0fd0cfbfc6
2 changed files with 17 additions and 7 deletions
|
@ -71,9 +71,10 @@ class ModelChooser(QHBoxLayout):
|
||||||
|
|
||||||
def onModelChange(self):
|
def onModelChange(self):
|
||||||
from aqt.studydeck import StudyDeck
|
from aqt.studydeck import StudyDeck
|
||||||
|
current = self.deck.models.current()['name']
|
||||||
ret = StudyDeck(self.mw, names=sorted(self.deck.models.allNames()),
|
ret = StudyDeck(self.mw, names=sorted(self.deck.models.allNames()),
|
||||||
accept=_("Select"), title=_("Choose Note Type"),
|
accept=_("Select"), title=_("Choose Note Type"),
|
||||||
help="_notes", parent=self.widget)
|
help="_notes", current=current, parent=self.widget)
|
||||||
if not ret.name:
|
if not ret.name:
|
||||||
return
|
return
|
||||||
m = self.deck.models.byName(ret.name)
|
m = self.deck.models.byName(ret.name)
|
||||||
|
|
|
@ -10,7 +10,7 @@ from operator import itemgetter
|
||||||
|
|
||||||
class StudyDeck(QDialog):
|
class StudyDeck(QDialog):
|
||||||
def __init__(self, mw, names=None, accept=None, title=None,
|
def __init__(self, mw, names=None, accept=None, title=None,
|
||||||
help="studydeck", parent=None):
|
help="studydeck", current=None, parent=None):
|
||||||
QDialog.__init__(self, parent or mw)
|
QDialog.__init__(self, parent or mw)
|
||||||
self.mw = mw
|
self.mw = mw
|
||||||
self.form = aqt.forms.studydeck.Ui_Dialog()
|
self.form = aqt.forms.studydeck.Ui_Dialog()
|
||||||
|
@ -20,6 +20,7 @@ class StudyDeck(QDialog):
|
||||||
self.setWindowTitle(title)
|
self.setWindowTitle(title)
|
||||||
if not names:
|
if not names:
|
||||||
names = sorted(self.mw.col.decks.allNames())
|
names = sorted(self.mw.col.decks.allNames())
|
||||||
|
current = self.mw.col.decks.current()['name']
|
||||||
self.origNames = names
|
self.origNames = names
|
||||||
self.name = None
|
self.name = None
|
||||||
self.ok = self.form.buttonBox.addButton(
|
self.ok = self.form.buttonBox.addButton(
|
||||||
|
@ -31,7 +32,9 @@ class StudyDeck(QDialog):
|
||||||
self.connect(self.form.filter,
|
self.connect(self.form.filter,
|
||||||
SIGNAL("textEdited(QString)"),
|
SIGNAL("textEdited(QString)"),
|
||||||
self.redraw)
|
self.redraw)
|
||||||
self.redraw("")
|
self.show()
|
||||||
|
# redraw after show so position at center correct
|
||||||
|
self.redraw("", current)
|
||||||
self.exec_()
|
self.exec_()
|
||||||
|
|
||||||
def eventFilter(self, obj, evt):
|
def eventFilter(self, obj, evt):
|
||||||
|
@ -52,11 +55,17 @@ class StudyDeck(QDialog):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def redraw(self, filt):
|
def redraw(self, filt, focus=None):
|
||||||
self.names = [n for n in self.origNames if self._matches(n, filt)]
|
self.names = [n for n in self.origNames if self._matches(n, filt)]
|
||||||
self.form.list.clear()
|
l = self.form.list
|
||||||
self.form.list.addItems(self.names)
|
l.clear()
|
||||||
self.form.list.setCurrentRow(0)
|
l.addItems(self.names)
|
||||||
|
if focus in self.names:
|
||||||
|
idx = self.names.index(focus)
|
||||||
|
else:
|
||||||
|
idx = 0
|
||||||
|
l.setCurrentRow(idx)
|
||||||
|
l.scrollToItem(l.item(idx), QAbstractItemView.PositionAtCenter)
|
||||||
|
|
||||||
def _matches(self, name, filt):
|
def _matches(self, name, filt):
|
||||||
name = name.lower()
|
name = name.lower()
|
||||||
|
|
Loading…
Reference in a new issue