Add a button to toggel reference mode to the toolbar

This commit is contained in:
Kovid Goyal 2019-12-09 09:29:27 +05:30
parent e1d9a25f81
commit 7dea54d135
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
4 changed files with 16 additions and 1 deletions

View File

@ -50,6 +50,7 @@ def all_actions():
'previous': Action('previous.png', _('Previous page'), 'previous'), 'previous': Action('previous.png', _('Previous page'), 'previous'),
'toc': Action('toc.png', _('Table of Contents'), 'toggle_toc'), 'toc': Action('toc.png', _('Table of Contents'), 'toggle_toc'),
'bookmarks': Action('bookmarks.png', _('Bookmarks'), 'toggle_bookmarks'), 'bookmarks': Action('bookmarks.png', _('Bookmarks'), 'toggle_bookmarks'),
'reference': Action('lookfeel.png', _('Toggle Reference mode'), 'toggle_reference_mode'),
'lookup': Action('generic-library.png', _('Lookup words'), 'toggle_lookup'), 'lookup': Action('generic-library.png', _('Lookup words'), 'toggle_lookup'),
'chrome': Action('tweaks.png', _('Show viewer controls'), 'show_chrome'), 'chrome': Action('tweaks.png', _('Show viewer controls'), 'show_chrome'),
'mode': Action('scroll.png', _('Toggle paged mode'), 'toggle_paged_mode'), 'mode': Action('scroll.png', _('Toggle paged mode'), 'toggle_paged_mode'),
@ -62,7 +63,7 @@ def all_actions():
DEFAULT_ACTIONS = ( DEFAULT_ACTIONS = (
'back', 'forward', None, 'open', 'copy', 'increase_font_size', 'decrease_font_size', 'fullscreen', 'back', 'forward', None, 'open', 'copy', 'increase_font_size', 'decrease_font_size', 'fullscreen',
None, 'previous', 'next', None, 'toc', 'bookmarks', 'lookup', 'chrome', None, 'mode', 'print', 'preferences', None, 'previous', 'next', None, 'toc', 'bookmarks', 'lookup', 'reference', 'chrome', None, 'mode', 'print', 'preferences',
'metadata' 'metadata'
) )
@ -121,6 +122,7 @@ class ActionsToolBar(ToolBar):
self.action_triggered.connect(web_view.trigger_shortcut) self.action_triggered.connect(web_view.trigger_shortcut)
page = web_view.page() page = web_view.page()
web_view.paged_mode_changed.connect(self.update_mode_action) web_view.paged_mode_changed.connect(self.update_mode_action)
web_view.reference_mode_changed.connect(self.update_reference_mode_action)
web_view.standalone_misc_settings_changed.connect(self.update_visibility) web_view.standalone_misc_settings_changed.connect(self.update_visibility)
web_view.customize_toolbar.connect(self.customize, type=Qt.QueuedConnection) web_view.customize_toolbar.connect(self.customize, type=Qt.QueuedConnection)
@ -147,6 +149,8 @@ class ActionsToolBar(ToolBar):
self.toc_action = shortcut_action('toc') self.toc_action = shortcut_action('toc')
self.bookmarks_action = shortcut_action('bookmarks') self.bookmarks_action = shortcut_action('bookmarks')
self.reference_action = a = shortcut_action('reference')
a.setCheckable(True)
self.lookup_action = shortcut_action('lookup') self.lookup_action = shortcut_action('lookup')
self.chrome_action = shortcut_action('chrome') self.chrome_action = shortcut_action('chrome')
@ -180,6 +184,9 @@ class ActionsToolBar(ToolBar):
a.setChecked(True) a.setChecked(True)
a.setToolTip(_('Switch to paged mode -- where the text is broken into pages')) a.setToolTip(_('Switch to paged mode -- where the text is broken into pages'))
def update_reference_mode_action(self, enabled):
self.reference_action.setChecked(enabled)
def set_tooltips(self, rmap): def set_tooltips(self, rmap):
for sc, a in iteritems(self.shortcut_actions): for sc, a in iteritems(self.shortcut_actions):
if a.isCheckable(): if a.isCheckable():

View File

@ -252,6 +252,7 @@ class ViewerBridge(Bridge):
copy_image = from_js(object) copy_image = from_js(object)
change_background_image = from_js(object) change_background_image = from_js(object)
overlay_visibility_changed = from_js(object) overlay_visibility_changed = from_js(object)
reference_mode_changed = from_js(object)
show_loading_message = from_js(object) show_loading_message = from_js(object)
show_error = from_js(object, object, object) show_error = from_js(object, object, object)
export_shortcut_map = from_js(object) export_shortcut_map = from_js(object)
@ -418,6 +419,7 @@ class WebView(RestartingWebEngineView):
view_image = pyqtSignal(object) view_image = pyqtSignal(object)
copy_image = pyqtSignal(object) copy_image = pyqtSignal(object)
overlay_visibility_changed = pyqtSignal(object) overlay_visibility_changed = pyqtSignal(object)
reference_mode_changed = pyqtSignal(object)
show_loading_message = pyqtSignal(object) show_loading_message = pyqtSignal(object)
show_error = pyqtSignal(object, object, object) show_error = pyqtSignal(object, object, object)
print_book = pyqtSignal() print_book = pyqtSignal()
@ -456,6 +458,7 @@ class WebView(RestartingWebEngineView):
self.bridge.view_image.connect(self.view_image) self.bridge.view_image.connect(self.view_image)
self.bridge.copy_image.connect(self.copy_image) self.bridge.copy_image.connect(self.copy_image)
self.bridge.overlay_visibility_changed.connect(self.overlay_visibility_changed) self.bridge.overlay_visibility_changed.connect(self.overlay_visibility_changed)
self.bridge.reference_mode_changed.connect(self.reference_mode_changed)
self.bridge.show_loading_message.connect(self.show_loading_message) self.bridge.show_loading_message.connect(self.show_loading_message)
self.bridge.show_error.connect(self.show_error) self.bridge.show_error.connect(self.show_error)
self.bridge.print_book.connect(self.print_book) self.bridge.print_book.connect(self.print_book)

View File

@ -976,7 +976,10 @@ class View:
def toggle_reference_mode(self): def toggle_reference_mode(self):
self.reference_mode_enabled = not self.reference_mode_enabled self.reference_mode_enabled = not self.reference_mode_enabled
self.on_reference_item_changed()
self.iframe_wrapper.send_message('set_reference_mode', enabled=self.reference_mode_enabled) self.iframe_wrapper.send_message('set_reference_mode', enabled=self.reference_mode_enabled)
if ui_operations.reference_mode_changed:
ui_operations.reference_mode_changed(self.reference_mode_enabled)
def on_reference_item_changed(self, data): def on_reference_item_changed(self, data):
data = data or {'refnum': None, 'index': None} data = data or {'refnum': None, 'index': None}

View File

@ -369,6 +369,8 @@ if window is window.top:
to_python.quit() to_python.quit()
ui_operations.overlay_visibility_changed = def(visible): ui_operations.overlay_visibility_changed = def(visible):
to_python.overlay_visibility_changed(visible) to_python.overlay_visibility_changed(visible)
ui_operations.reference_mode_changed = def(enabled):
to_python.reference_mode_changed(enabled)
ui_operations.show_loading_message = def(msg): ui_operations.show_loading_message = def(msg):
to_python.show_loading_message(msg) to_python.show_loading_message(msg)
ui_operations.export_shortcut_map = def(smap): ui_operations.export_shortcut_map = def(smap):