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