mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Viewer: Add a control to easily reset the interface to defaults
This commit is contained in:
parent
47fc7c20b9
commit
4e98478013
@ -41,7 +41,6 @@ class ActionsToolBar(ToolBar):
|
||||
def __init__(self, parent=None):
|
||||
ToolBar.__init__(self, parent)
|
||||
self.setObjectName('actions_toolbar')
|
||||
self.update_visibility()
|
||||
|
||||
def initialize(self, web_view):
|
||||
shortcut_action = self.create_shortcut_action
|
||||
|
@ -14,7 +14,7 @@ from threading import Thread
|
||||
|
||||
from PyQt5.Qt import (
|
||||
QApplication, QDockWidget, QEvent, QMimeData, QModelIndex, QPixmap, QScrollBar,
|
||||
Qt, QUrl, QVBoxLayout, QWidget, pyqtSignal
|
||||
Qt, QToolBar, QUrl, QVBoxLayout, QWidget, pyqtSignal
|
||||
)
|
||||
|
||||
from calibre import prints
|
||||
@ -160,11 +160,13 @@ class EbookViewer(MainWindow):
|
||||
self.web_view.show_loading_message.connect(self.show_loading_message)
|
||||
self.web_view.show_error.connect(self.show_error)
|
||||
self.web_view.print_book.connect(self.print_book, type=Qt.QueuedConnection)
|
||||
self.web_view.reset_interface.connect(self.reset_interface, type=Qt.QueuedConnection)
|
||||
self.web_view.shortcuts_changed.connect(self.shortcuts_changed)
|
||||
self.actions_toolbar.initialize(self.web_view)
|
||||
self.setCentralWidget(self.web_view)
|
||||
self.loading_overlay = LoadingOverlay(self)
|
||||
self.restore_state()
|
||||
self.actions_toolbar.update_visibility()
|
||||
if continue_reading:
|
||||
self.continue_reading()
|
||||
|
||||
@ -300,6 +302,19 @@ class EbookViewer(MainWindow):
|
||||
from .printing import print_book
|
||||
print_book(set_book_path.pathtoebook, book_title=self.current_book_data['metadata']['title'], parent=self)
|
||||
|
||||
def reset_interface(self):
|
||||
for dock in self.findChildren(QDockWidget):
|
||||
dock.setFloating(False)
|
||||
area = self.dock_defs[dock.objectName().partition('-')[0]].initial_area
|
||||
self.removeDockWidget(dock)
|
||||
self.addDockWidget(area, dock)
|
||||
dock.setVisible(False)
|
||||
|
||||
for toolbar in self.findChildren(QToolBar):
|
||||
toolbar.setVisible(False)
|
||||
self.removeToolBar(toolbar)
|
||||
self.addToolBar(Qt.LeftToolBarArea, toolbar)
|
||||
|
||||
def ask_for_open(self, path=None):
|
||||
if path is None:
|
||||
files = choose_files(
|
||||
|
@ -255,6 +255,7 @@ class ViewerBridge(Bridge):
|
||||
export_shortcut_map = from_js(object)
|
||||
print_book = from_js()
|
||||
clear_history = from_js()
|
||||
reset_interface = from_js()
|
||||
|
||||
create_view = to_js()
|
||||
start_book_load = to_js()
|
||||
@ -400,6 +401,7 @@ class WebView(RestartingWebEngineView):
|
||||
show_loading_message = pyqtSignal(object)
|
||||
show_error = pyqtSignal(object, object, object)
|
||||
print_book = pyqtSignal()
|
||||
reset_interface = pyqtSignal()
|
||||
shortcuts_changed = pyqtSignal(object)
|
||||
paged_mode_changed = pyqtSignal()
|
||||
standalone_misc_settings_changed = pyqtSignal(object)
|
||||
@ -436,6 +438,7 @@ class WebView(RestartingWebEngineView):
|
||||
self.bridge.show_error.connect(self.show_error)
|
||||
self.bridge.print_book.connect(self.print_book)
|
||||
self.bridge.clear_history.connect(self.clear_history)
|
||||
self.bridge.reset_interface.connect(self.reset_interface)
|
||||
self.bridge.export_shortcut_map.connect(self.set_shortcut_map)
|
||||
self.shortcut_map = {}
|
||||
self.bridge.report_cfi.connect(self.call_callback)
|
||||
|
@ -313,7 +313,9 @@ class MainOverlay: # {{{
|
||||
|
||||
actions_div.appendChild(E.ul(
|
||||
ac(_('Inspector'), _('Show the content inspector'),
|
||||
def(): self.overlay.hide(), ui_operations.toggle_inspector();, 'bug')
|
||||
def(): self.overlay.hide(), ui_operations.toggle_inspector();, 'bug'),
|
||||
ac(_('Reset interface'), _('Reset viewer panels, toolbars and scrollbars to defaults'),
|
||||
def(): self.overlay.hide(), ui_operations.reset_interface();, 'remove'),
|
||||
))
|
||||
container.appendChild(set_css(E.div(class_=MAIN_OVERLAY_TS_CLASS, # top section
|
||||
onclick=def (evt):evt.stopPropagation();,
|
||||
|
@ -8,7 +8,7 @@ from gettext import gettext as _, install
|
||||
|
||||
import initialize # noqa: unused-import
|
||||
from ajax import ajax
|
||||
from book_list.globals import set_session_data
|
||||
from book_list.globals import get_session_data, set_session_data
|
||||
from book_list.library_data import library_data
|
||||
from book_list.theme import get_color
|
||||
from dom import get_widget_css, set_css
|
||||
@ -20,7 +20,7 @@ from read_book.globals import runtime, ui_operations
|
||||
from read_book.iframe import main as iframe_main
|
||||
from read_book.shortcuts import add_standalone_viewer_shortcuts
|
||||
from read_book.view import View
|
||||
from session import session_defaults, local_storage
|
||||
from session import local_storage, session_defaults
|
||||
from utils import encode_query_with_path, parse_url_params
|
||||
from viewer.constants import FAKE_HOST, FAKE_PROTOCOL, READER_BACKGROUND_URL
|
||||
|
||||
@ -322,6 +322,14 @@ if window is window.top:
|
||||
to_python.toggle_bookmarks()
|
||||
ui_operations.toggle_inspector = def():
|
||||
to_python.toggle_inspector()
|
||||
ui_operations.reset_interface = def():
|
||||
sd = get_session_data()
|
||||
m = sd.get('standalone_misc_settings', {})
|
||||
v'delete m.show_actions_toolbar'
|
||||
sd.set('standalone_misc_settings', m)
|
||||
sd.set('book_scrollbar', False)
|
||||
view.book_scrollbar.apply_visibility()
|
||||
to_python.reset_interface()
|
||||
ui_operations.toggle_lookup = def():
|
||||
to_python.toggle_lookup()
|
||||
ui_operations.selection_changed = def(selected_text):
|
||||
|
Loading…
x
Reference in New Issue
Block a user