mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
E-book viewer: Automatically hide the mouse cursor if the mouse has not been used for a few seconds. This prevents the mouse cursor from obscuring text underneath it. The cursor will reappear automatically when you move the mouse.
This commit is contained in:
parent
e06eed5808
commit
2d65fde274
@ -70,6 +70,7 @@ class EbookViewer(MainWindow):
|
|||||||
self.pending_reference = None
|
self.pending_reference = None
|
||||||
self.pending_bookmark = None
|
self.pending_bookmark = None
|
||||||
self.pending_restore = False
|
self.pending_restore = False
|
||||||
|
self.cursor_hidden = False
|
||||||
self.existing_bookmarks= []
|
self.existing_bookmarks= []
|
||||||
self.selected_text = None
|
self.selected_text = None
|
||||||
self.was_maximized = False
|
self.was_maximized = False
|
||||||
@ -155,6 +156,22 @@ class EbookViewer(MainWindow):
|
|||||||
self.action_toggle_paged_mode.toggled[bool].connect(self.toggle_paged_mode)
|
self.action_toggle_paged_mode.toggled[bool].connect(self.toggle_paged_mode)
|
||||||
if (start_in_fullscreen or self.view.document.start_in_fullscreen):
|
if (start_in_fullscreen or self.view.document.start_in_fullscreen):
|
||||||
self.action_full_screen.trigger()
|
self.action_full_screen.trigger()
|
||||||
|
self.hide_cursor_timer = t = QTimer(self)
|
||||||
|
t.setSingleShot(True), t.setInterval(3000)
|
||||||
|
t.timeout.connect(self.hide_cursor)
|
||||||
|
t.start()
|
||||||
|
|
||||||
|
def eventFilter(self, obj, ev):
|
||||||
|
if ev.type() == ev.MouseMove:
|
||||||
|
if self.cursor_hidden:
|
||||||
|
self.cursor_hidden = False
|
||||||
|
QApplication.instance().restoreOverrideCursor()
|
||||||
|
self.hide_cursor_timer.start()
|
||||||
|
return False
|
||||||
|
|
||||||
|
def hide_cursor(self):
|
||||||
|
self.cursor_hidden = True
|
||||||
|
QApplication.instance().setOverrideCursor(Qt.BlankCursor)
|
||||||
|
|
||||||
def toggle_paged_mode(self, checked, at_start=False):
|
def toggle_paged_mode(self, checked, at_start=False):
|
||||||
in_paged_mode = not self.action_toggle_paged_mode.isChecked()
|
in_paged_mode = not self.action_toggle_paged_mode.isChecked()
|
||||||
@ -1001,6 +1018,7 @@ def main(args=sys.argv):
|
|||||||
main = EbookViewer(args[1] if len(args) > 1 else None,
|
main = EbookViewer(args[1] if len(args) > 1 else None,
|
||||||
debug_javascript=opts.debug_javascript, open_at=open_at,
|
debug_javascript=opts.debug_javascript, open_at=open_at,
|
||||||
start_in_fullscreen=opts.full_screen)
|
start_in_fullscreen=opts.full_screen)
|
||||||
|
app.installEventFilter(main)
|
||||||
# This is needed for paged mode. Without it, the first document that is
|
# This is needed for paged mode. Without it, the first document that is
|
||||||
# loaded will have extra blank space at the bottom, as
|
# loaded will have extra blank space at the bottom, as
|
||||||
# turn_off_internal_scrollbars does not take effect for the first
|
# turn_off_internal_scrollbars does not take effect for the first
|
||||||
|
Loading…
x
Reference in New Issue
Block a user