From fe083e916f89d6804474b362fbaa60dd6b238824 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Wed, 13 Apr 2011 00:13:47 +0900 Subject: [PATCH] fix navigation --- aqt/browser.py | 27 +++++++++++++++++---------- aqt/editor.py | 3 +++ designer/browser.ui | 1 - 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/aqt/browser.py b/aqt/browser.py index 2e8185803..bbc468ca3 100644 --- a/aqt/browser.py +++ b/aqt/browser.py @@ -363,8 +363,12 @@ class Browser(QMainWindow): def keyPressEvent(self, evt): "Show answer on RET or register answer." - if evt.key() in (Qt.Key_Escape,): + if evt.key() == Qt.Key_Escape: self.close() + elif self.mw.app.focusWidget() == self.form.tree: + if evt.key() in (Qt.Key_Return, Qt.Key_Enter): + item = self.form.tree.currentItem() + self.onTreeClick(item, 0) def setupColumns(self): self.columns = [ @@ -398,7 +402,9 @@ class Browser(QMainWindow): def onSearch(self): txt = unicode(self.form.searchEdit.text()).strip() self.model.search(txt) - show = not not self.model.cards + if not self.model.cards: + # no row change will fire + self.onRowChanged(None, None) def updateTitle(self): selected = len(self.form.tableView.selectionModel().selectedRows()) @@ -434,7 +440,7 @@ class Browser(QMainWindow): def onRowChanged(self, current, previous): "Update current fact and hide/show editor." show = self.model.cards and self.updateTitle() == 1 - self.form.splitter_2.widget(1).setShown(show) + self.form.splitter_2.widget(1).setShown(not not show) if not show: self.editor.setFact(None) else: @@ -445,7 +451,6 @@ class Browser(QMainWindow): self.showCardInfo(self.card) self.updateToggles() - # Headers & sorting ###################################################################### @@ -603,13 +608,13 @@ class Browser(QMainWindow): def _systemTagTree(self, root): tags = ( (_("All cards"), "stock_new_template", ""), + (_("Marked"), "rating.png", "tag:marked"), + (_("Suspended"), "media-playback-pause.png", "is:suspended"), + (_("Leech"), "emblem-important.png", "tag:leech"), (_("Never seen"), "stock_new_template_blue.png", "is:new"), (_("In learning"), "stock_new_template_red.png", "is:lrn"), (_("In review"), "stock_new_template_green.png", "is:rev"), - (_("Due reviews"), "stock_new_template_green.png", "is:due"), - (_("Marked"), "rating.png", "tag:marked"), - (_("Suspended"), "media-playback-pause.png", "is:suspended"), - (_("Leech"), "emblem-important.png", "tag:leech")) + (_("Due reviews"), "stock_new_template_green.png", "is:due")) for name, icon, cmd in tags: item = self.CallbackItem( name, lambda c=cmd: self.setFilter(c)) @@ -1099,6 +1104,7 @@ select fm.id, fm.name from fieldmodels fm""") row = max(0, row - 1) self.form.tableView.selectionModel().clear() self.form.tableView.selectRow(row) + self.onFact() def onNextCard(self): if not self.model.cards: @@ -1108,16 +1114,17 @@ select fm.id, fm.name from fieldmodels fm""") row = min(len(self.model.cards) - 1, row + 1) self.form.tableView.selectionModel().clear() self.form.tableView.selectRow(row) + self.onFact() def onFind(self): self.form.searchEdit.setFocus() self.form.searchEdit.selectAll() def onFact(self): - self.editor.focusFirst() + self.editor.focus() def onTags(self): - self.form.tagList.setFocus() + self.form.tree.setFocus() def onSort(self): self.form.sortBox.setFocus() diff --git a/aqt/editor.py b/aqt/editor.py index 4c737c55e..477731d9f 100644 --- a/aqt/editor.py +++ b/aqt/editor.py @@ -377,6 +377,9 @@ class Editor(object): if self.stealFocus: self.web.setFocus() + def focus(self): + self.web.setFocus() + def fonts(self): return [(f['font'], f['esize']) for f in self.fact.model().fields] diff --git a/designer/browser.ui b/designer/browser.ui index c33c4169c..a63cd628a 100644 --- a/designer/browser.ui +++ b/designer/browser.ui @@ -230,7 +230,6 @@ -