mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 16:56:36 -04:00
key handling stuff
This commit is contained in:
parent
5e97a285a1
commit
da25e87ac4
4 changed files with 22 additions and 23 deletions
14
aqt/main.py
14
aqt/main.py
|
@ -223,6 +223,7 @@ Are you sure?"""):
|
|||
self.moveToState("overview")
|
||||
|
||||
def _overviewState(self, oldState):
|
||||
self.col.reset()
|
||||
self.overview.show()
|
||||
|
||||
def _reviewState(self, oldState):
|
||||
|
@ -272,7 +273,6 @@ Are you sure?"""):
|
|||
if self.resetModal:
|
||||
# we don't have to change the webview, as we have a covering window
|
||||
return
|
||||
self.web.setKeyHandler(None)
|
||||
self.web.setLinkHandler(lambda url: self.maybeReset())
|
||||
i = _("Close the browser to resume.")
|
||||
b = self.button("refresh", _("Resume Now"))
|
||||
|
@ -481,9 +481,15 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
|||
##########################################################################
|
||||
|
||||
def setupKeys(self):
|
||||
self.keyDelegate = None
|
||||
self.keyHandler = None
|
||||
|
||||
def keyPressEvent(self, evt):
|
||||
# do we have a delegate?
|
||||
if self.keyHandler:
|
||||
# did it eat the key?
|
||||
if self.keyHandler(evt):
|
||||
return
|
||||
# run standard handler
|
||||
QMainWindow.keyPressEvent(self, evt)
|
||||
# check global keys
|
||||
key = unicode(evt.text())
|
||||
|
@ -498,6 +504,10 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
|||
self.onAddCard()
|
||||
elif key == "b":
|
||||
self.onBrowse()
|
||||
elif key == "S":
|
||||
self.onStats()
|
||||
elif key == "y":
|
||||
self.onSync()
|
||||
|
||||
# App exit
|
||||
##########################################################################
|
||||
|
|
|
@ -19,7 +19,6 @@ class Overview(object):
|
|||
addHook("reset", self.refresh)
|
||||
|
||||
def show(self):
|
||||
self.web.setKeyHandler(self._keyHandler)
|
||||
self.web.setLinkHandler(self._linkHandler)
|
||||
self.refresh()
|
||||
|
||||
|
@ -30,16 +29,6 @@ class Overview(object):
|
|||
# Handlers
|
||||
############################################################
|
||||
|
||||
def _keyHandler(self, evt):
|
||||
txt = evt.text()
|
||||
if txt == "s":
|
||||
self._linkHandler("study")
|
||||
elif txt == "c":
|
||||
self._linkHandler("cram")
|
||||
else:
|
||||
return
|
||||
return True
|
||||
|
||||
def _linkHandler(self, url):
|
||||
print "link", url
|
||||
if url == "study":
|
||||
|
|
|
@ -26,8 +26,9 @@ class Reviewer(object):
|
|||
addHook("leech", self.onLeech)
|
||||
|
||||
def show(self):
|
||||
self.web.setKeyHandler(self._keyHandler)
|
||||
self.mw.keyHandler = self._keyHandler
|
||||
self.web.setLinkHandler(self._linkHandler)
|
||||
self.web.setKeyHandler(self._catchEsc)
|
||||
self.bottom.web.setFixedHeight(46)
|
||||
self.bottom.web.setLinkHandler(self._linkHandler)
|
||||
self.nextCard()
|
||||
|
@ -152,6 +153,9 @@ function _typeAnsPress() {
|
|||
q = self._mungeQA(q)
|
||||
self.web.eval("_updateQA(%s);" % simplejson.dumps(q))
|
||||
self._showAnswerButton()
|
||||
# if we have a type answer field, focus main web
|
||||
if self.typeField:
|
||||
self.mw.web.setFocus()
|
||||
# user hook
|
||||
runHook('showQuestion')
|
||||
|
||||
|
@ -185,6 +189,11 @@ function _typeAnsPress() {
|
|||
# Handlers
|
||||
############################################################
|
||||
|
||||
def _catchEsc(self, evt):
|
||||
if evt.key() == Qt.Key_Escape:
|
||||
self.web.eval("$('#typeans').blur();")
|
||||
return True
|
||||
|
||||
def _keyHandler(self, evt):
|
||||
print "rev event", evt.key()
|
||||
if self.state == "question":
|
||||
|
@ -248,7 +257,6 @@ body { margin:1.5em; }
|
|||
if not m:
|
||||
return buf
|
||||
fld = m.group(1)
|
||||
print "got", fld
|
||||
fobj = None
|
||||
for f in self.card.model()['flds']:
|
||||
if f['name'] == fld:
|
||||
|
|
|
@ -52,15 +52,7 @@ class AnkiWebView(QWebView):
|
|||
self.connect(self, SIGNAL("loadFinished(bool)"), self._loadFinished)
|
||||
self._curKey = None
|
||||
self.allowDrops = False
|
||||
def keyPressEvent(self, evt):
|
||||
self._curKey = True
|
||||
return QWebView.keyPressEvent(self, evt)
|
||||
def keyReleaseEvent(self, evt):
|
||||
if not self._curKey:
|
||||
# event didn't start with us
|
||||
evt.ignore()
|
||||
return
|
||||
self._curKey = None
|
||||
if self._keyHandler:
|
||||
if self._keyHandler(evt):
|
||||
evt.accept()
|
||||
|
|
Loading…
Reference in a new issue