mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Viewer: Auto-hide the mouse cursor when unused. Can be turned off via a preference in the Miscellaneous section of the viewer preferences
This commit is contained in:
parent
5cfb18055f
commit
f1a8dbc2a0
@ -196,6 +196,7 @@ class EbookViewer(MainWindow):
|
|||||||
self.highlights_widget.web_action.connect(self.web_view.generic_action)
|
self.highlights_widget.web_action.connect(self.web_view.generic_action)
|
||||||
if continue_reading:
|
if continue_reading:
|
||||||
self.continue_reading()
|
self.continue_reading()
|
||||||
|
self.setup_mouse_auto_hide()
|
||||||
|
|
||||||
def shortcuts_changed(self, smap):
|
def shortcuts_changed(self, smap):
|
||||||
rmap = defaultdict(list)
|
rmap = defaultdict(list)
|
||||||
@ -675,3 +676,26 @@ class EbookViewer(MainWindow):
|
|||||||
self.shutdown_done = True
|
self.shutdown_done = True
|
||||||
return MainWindow.closeEvent(self, ev)
|
return MainWindow.closeEvent(self, ev)
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
# Auto-hide mouse cursor {{{
|
||||||
|
def setup_mouse_auto_hide(self):
|
||||||
|
QApplication.instance().installEventFilter(self)
|
||||||
|
self.cursor_hidden = False
|
||||||
|
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):
|
||||||
|
if get_session_pref('auto_hide_mouse', True):
|
||||||
|
self.cursor_hidden = True
|
||||||
|
QApplication.instance().setOverrideCursor(Qt.BlankCursor)
|
||||||
|
# }}}
|
||||||
|
@ -21,6 +21,7 @@ DEFAULTS = {
|
|||||||
'save_annotations_in_ebook': True,
|
'save_annotations_in_ebook': True,
|
||||||
'sync_annots_user': '',
|
'sync_annots_user': '',
|
||||||
'singleinstance': False,
|
'singleinstance': False,
|
||||||
|
'auto_hide_mouse': True,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -72,6 +73,7 @@ def create_misc_panel(container, apply_func, cancel_func):
|
|||||||
container.append(sync_annots)
|
container.append(sync_annots)
|
||||||
container.append(cb('singleinstance', _('Allow only a single instance of the viewer (needs restart)')))
|
container.append(cb('singleinstance', _('Allow only a single instance of the viewer (needs restart)')))
|
||||||
container.append(cb('hide_tooltips', _('Hide mouse-over tooltips in the book text')))
|
container.append(cb('hide_tooltips', _('Hide mouse-over tooltips in the book text')))
|
||||||
|
container.append(cb('auto_hide_mouse', _('Auto hide the mouse cursor when unused for a few seconds')))
|
||||||
|
|
||||||
container.appendChild(create_button_box(restore_defaults, apply_func, cancel_func))
|
container.appendChild(create_button_box(restore_defaults, apply_func, cancel_func))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user