mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 10:44:09 -04:00
Add vim like shortcuts to ebook-viewer for scrolling. Fixes #2083 (Add Keyboard shorcuts to Viewer)
This commit is contained in:
parent
fad3f7a7d0
commit
f785c76883
@ -450,7 +450,9 @@ class DocumentView(QWebView):
|
|||||||
self.manager.scrolled(self.scroll_fraction)
|
self.manager.scrolled(self.scroll_fraction)
|
||||||
|
|
||||||
def wheel_event(self, down=True):
|
def wheel_event(self, down=True):
|
||||||
QWebView.wheelEvent(self, QWheelEvent(QPoint(100, 100), (-120 if down else 120), Qt.NoButton, Qt.NoModifier))
|
QWebView.wheelEvent(self,
|
||||||
|
QWheelEvent(QPoint(100, 100), (-120 if down else 120),
|
||||||
|
Qt.NoButton, Qt.NoModifier))
|
||||||
|
|
||||||
def next_page(self):
|
def next_page(self):
|
||||||
if self.document.at_bottom:
|
if self.document.at_bottom:
|
||||||
@ -538,6 +540,26 @@ class DocumentView(QWebView):
|
|||||||
self.next_page()
|
self.next_page()
|
||||||
elif key in [Qt.Key_PageUp, Qt.Key_Backspace, Qt.Key_Up]:
|
elif key in [Qt.Key_PageUp, Qt.Key_Backspace, Qt.Key_Up]:
|
||||||
self.previous_page()
|
self.previous_page()
|
||||||
|
elif key in [Qt.Key_Home]:
|
||||||
|
if event.modifiers() & Qt.ControlModifier:
|
||||||
|
if self.manager is not None:
|
||||||
|
self.manager.goto_start()
|
||||||
|
else:
|
||||||
|
self.scroll_to(0)
|
||||||
|
elif key in [Qt.Key_End]:
|
||||||
|
if event.modifiers() & Qt.ControlModifier:
|
||||||
|
if self.manager is not None:
|
||||||
|
self.manager.goto_end()
|
||||||
|
else:
|
||||||
|
self.scroll_to(1)
|
||||||
|
elif key in [Qt.Key_J]:
|
||||||
|
self.wheel_event()
|
||||||
|
elif key in [Qt.Key_K]:
|
||||||
|
self.wheel_event(down=False)
|
||||||
|
elif key in [Qt.Key_H]:
|
||||||
|
self.scroll_by(x=-15)
|
||||||
|
elif key in [Qt.Key_L]:
|
||||||
|
self.scroll_by(x=15)
|
||||||
else:
|
else:
|
||||||
return QWebView.keyPressEvent(self, event)
|
return QWebView.keyPressEvent(self, event)
|
||||||
|
|
||||||
|
@ -325,6 +325,12 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
|
|||||||
pos = self.history.forward()
|
pos = self.history.forward()
|
||||||
if pos is not None:
|
if pos is not None:
|
||||||
self.goto_page(pos)
|
self.goto_page(pos)
|
||||||
|
|
||||||
|
def goto_start(self):
|
||||||
|
self.goto_page(1)
|
||||||
|
|
||||||
|
def goto_end(self):
|
||||||
|
self.goto_page(self.pos.maximum())
|
||||||
|
|
||||||
def goto_page(self, new_page):
|
def goto_page(self, new_page):
|
||||||
if self.current_page is not None:
|
if self.current_page is not None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user