From 5b0b2e63ad6944505f8cf169e1c04361824a2914 Mon Sep 17 00:00:00 2001 From: Samson Melamed Date: Tue, 23 Dec 2008 23:04:09 -0500 Subject: [PATCH] use arrow keys and page up/down to scroll QA area --- ankiqt/ui/main.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/ankiqt/ui/main.py b/ankiqt/ui/main.py index 12457e9f4..9bc33872c 100644 --- a/ankiqt/ui/main.py +++ b/ankiqt/ui/main.py @@ -90,7 +90,7 @@ class AnkiQt(QMainWindow): self.addView(self.bodyView) self.statusView = ui.status.StatusView(self) self.addView(self.statusView) - + def setupTray(self): self.trayIcon = ui.tray.AnkiTrayIcon(self) @@ -253,6 +253,32 @@ Please do not file a bug report with Anki.\n\n""") def keyPressEvent(self, evt): "Show answer on RET or register answer." + + if evt.key() in (Qt.Key_Up,Qt.Key_Down,Qt.Key_Left,Qt.Key_Right, + Qt.Key_PageUp,Qt.Key_PageDown): + + mf = self.bodyView.body.page().currentFrame() + + if evt.key() == Qt.Key_Up: + mf.evaluateJavaScript("window.scrollBy(0,-20)") + elif evt.key() == Qt.Key_Down: + mf.evaluateJavaScript("window.scrollBy(0,20)") + elif evt.key() == Qt.Key_Left: + mf.evaluateJavaScript("window.scrollBy(-20,0)") + elif evt.key() == Qt.Key_Right: + mf.evaluateJavaScript("window.scrollBy(20,0)") + elif evt.key() == Qt.Key_PageUp: + mf.evaluateJavaScript("window.scrollBy(0,-%d)" % + int(0.9*self.bodyView.body.size(). + height())) + elif evt.key() == Qt.Key_PageDown: + mf.evaluateJavaScript("window.scrollBy(0,%d)" % + int(0.9*self.bodyView.body.size(). + height())) + + evt.accept() + return + if self.state == "showQuestion": if evt.key() in (Qt.Key_Enter, Qt.Key_Return):