diff --git a/aqt/browser.py b/aqt/browser.py index 11373f611..c7d97a776 100644 --- a/aqt/browser.py +++ b/aqt/browser.py @@ -354,6 +354,8 @@ class Browser(QMainWindow): # jumps c(f.actionPreviousCard, s, self.onPreviousCard) c(f.actionNextCard, s, self.onNextCard) + c(f.actionFirstCard, s, self.onFirstCard) + c(f.actionLastCard, s, self.onLastCard) c(f.actionFind, s, self.onFind) c(f.actionNote, s, self.onNote) c(f.actionTags, s, self.onTags) @@ -1208,12 +1210,13 @@ select fm.id, fm.name from fieldmodels fm""") # Jumping ###################################################################### - def _moveCur(self, dir): + def _moveCur(self, dir=None, idx=None): if not self.model.cards: return self.editor.saveNow() tv = self.form.tableView - idx = tv.moveCursor(dir, Qt.NoModifier) + if idx is None: + idx = tv.moveCursor(dir, self.mw.app.keyboardModifiers()) tv.selectionModel().clear() tv.setCurrentIndex(idx) @@ -1225,6 +1228,13 @@ select fm.id, fm.name from fieldmodels fm""") self._moveCur(QAbstractItemView.MoveDown) self.editor.web.setFocus() + def onFirstCard(self): + self._moveCur(None, self.model.index(0, 0)) + + def onLastCard(self): + self._moveCur( + None, self.model.index(len(self.model.cards) - 1, 0)) + def onFind(self): self.form.searchEdit.setFocus() self.form.searchEdit.lineEdit().selectAll() diff --git a/designer/browser.ui b/designer/browser.ui index 27c7ff561..27a0aeac1 100644 --- a/designer/browser.ui +++ b/designer/browser.ui @@ -260,8 +260,10 @@ + + @@ -455,6 +457,30 @@ Reposition... + + + + :/icons/arrow-up.png:/icons/arrow-up.png + + + First Card + + + Home + + + + + + :/icons/arrow-down.png:/icons/arrow-down.png + + + Last Card + + + End + +