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):
|
def __init__(self, parent=None):
|
||||||
ToolBar.__init__(self, parent)
|
ToolBar.__init__(self, parent)
|
||||||
self.setObjectName('actions_toolbar')
|
self.setObjectName('actions_toolbar')
|
||||||
self.update_visibility()
|
|
||||||
|
|
||||||
def initialize(self, web_view):
|
def initialize(self, web_view):
|
||||||
shortcut_action = self.create_shortcut_action
|
shortcut_action = self.create_shortcut_action
|
||||||
|
@ -14,7 +14,7 @@ from threading import Thread
|
|||||||
|
|
||||||
from PyQt5.Qt import (
|
from PyQt5.Qt import (
|
||||||
QApplication, QDockWidget, QEvent, QMimeData, QModelIndex, QPixmap, QScrollBar,
|
QApplication, QDockWidget, QEvent, QMimeData, QModelIndex, QPixmap, QScrollBar,
|
||||||
Qt, QUrl, QVBoxLayout, QWidget, pyqtSignal
|
Qt, QToolBar, QUrl, QVBoxLayout, QWidget, pyqtSignal
|
||||||
)
|
)
|
||||||
|
|
||||||
from calibre import prints
|
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_loading_message.connect(self.show_loading_message)
|
||||||
self.web_view.show_error.connect(self.show_error)
|
self.web_view.show_error.connect(self.show_error)
|
||||||
self.web_view.print_book.connect(self.print_book, type=Qt.QueuedConnection)
|
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.web_view.shortcuts_changed.connect(self.shortcuts_changed)
|
||||||
self.actions_toolbar.initialize(self.web_view)
|
self.actions_toolbar.initialize(self.web_view)
|
||||||
self.setCentralWidget(self.web_view)
|
self.setCentralWidget(self.web_view)
|
||||||
self.loading_overlay = LoadingOverlay(self)
|
self.loading_overlay = LoadingOverlay(self)
|
||||||
self.restore_state()
|
self.restore_state()
|
||||||
|
self.actions_toolbar.update_visibility()
|
||||||
if continue_reading:
|
if continue_reading:
|
||||||
self.continue_reading()
|
self.continue_reading()
|
||||||
|
|
||||||
@ -300,6 +302,19 @@ class EbookViewer(MainWindow):
|
|||||||
from .printing import print_book
|
from .printing import print_book
|
||||||
print_book(set_book_path.pathtoebook, book_title=self.current_book_data['metadata']['title'], parent=self)
|
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):
|
def ask_for_open(self, path=None):
|
||||||
if path is None:
|
if path is None:
|
||||||
files = choose_files(
|
files = choose_files(
|
||||||
|
@ -255,6 +255,7 @@ class ViewerBridge(Bridge):
|
|||||||
export_shortcut_map = from_js(object)
|
export_shortcut_map = from_js(object)
|
||||||
print_book = from_js()
|
print_book = from_js()
|
||||||
clear_history = from_js()
|
clear_history = from_js()
|
||||||
|
reset_interface = from_js()
|
||||||
|
|
||||||
create_view = to_js()
|
create_view = to_js()
|
||||||
start_book_load = to_js()
|
start_book_load = to_js()
|
||||||
@ -400,6 +401,7 @@ class WebView(RestartingWebEngineView):
|
|||||||
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()
|
||||||
|
reset_interface = pyqtSignal()
|
||||||
shortcuts_changed = pyqtSignal(object)
|
shortcuts_changed = pyqtSignal(object)
|
||||||
paged_mode_changed = pyqtSignal()
|
paged_mode_changed = pyqtSignal()
|
||||||
standalone_misc_settings_changed = pyqtSignal(object)
|
standalone_misc_settings_changed = pyqtSignal(object)
|
||||||
@ -436,6 +438,7 @@ class WebView(RestartingWebEngineView):
|
|||||||
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)
|
||||||
self.bridge.clear_history.connect(self.clear_history)
|
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.bridge.export_shortcut_map.connect(self.set_shortcut_map)
|
||||||
self.shortcut_map = {}
|
self.shortcut_map = {}
|
||||||
self.bridge.report_cfi.connect(self.call_callback)
|
self.bridge.report_cfi.connect(self.call_callback)
|
||||||
|
@ -313,7 +313,9 @@ class MainOverlay: # {{{
|
|||||||
|
|
||||||
actions_div.appendChild(E.ul(
|
actions_div.appendChild(E.ul(
|
||||||
ac(_('Inspector'), _('Show the content inspector'),
|
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
|
container.appendChild(set_css(E.div(class_=MAIN_OVERLAY_TS_CLASS, # top section
|
||||||
onclick=def (evt):evt.stopPropagation();,
|
onclick=def (evt):evt.stopPropagation();,
|
||||||
|
@ -8,7 +8,7 @@ from gettext import gettext as _, install
|
|||||||
|
|
||||||
import initialize # noqa: unused-import
|
import initialize # noqa: unused-import
|
||||||
from ajax import ajax
|
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.library_data import library_data
|
||||||
from book_list.theme import get_color
|
from book_list.theme import get_color
|
||||||
from dom import get_widget_css, set_css
|
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.iframe import main as iframe_main
|
||||||
from read_book.shortcuts import add_standalone_viewer_shortcuts
|
from read_book.shortcuts import add_standalone_viewer_shortcuts
|
||||||
from read_book.view import View
|
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 utils import encode_query_with_path, parse_url_params
|
||||||
from viewer.constants import FAKE_HOST, FAKE_PROTOCOL, READER_BACKGROUND_URL
|
from viewer.constants import FAKE_HOST, FAKE_PROTOCOL, READER_BACKGROUND_URL
|
||||||
|
|
||||||
@ -322,6 +322,14 @@ if window is window.top:
|
|||||||
to_python.toggle_bookmarks()
|
to_python.toggle_bookmarks()
|
||||||
ui_operations.toggle_inspector = def():
|
ui_operations.toggle_inspector = def():
|
||||||
to_python.toggle_inspector()
|
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():
|
ui_operations.toggle_lookup = def():
|
||||||
to_python.toggle_lookup()
|
to_python.toggle_lookup()
|
||||||
ui_operations.selection_changed = def(selected_text):
|
ui_operations.selection_changed = def(selected_text):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user