diff --git a/src/calibre/gui2/viewer2/web_view.py b/src/calibre/gui2/viewer2/web_view.py index 1d818e21e8..fcafaa9155 100644 --- a/src/calibre/gui2/viewer2/web_view.py +++ b/src/calibre/gui2/viewer2/web_view.py @@ -172,6 +172,13 @@ class WebPage(QWebEnginePage): self.runJavaScript(src, QWebEngineScript.ApplicationWorld, callback) +def viewer_html(): + ans = getattr(viewer_html, 'ans', None) + if ans is None: + ans = viewer_html.ans = P('viewer.html', data=True, allow_user_override=False).decode('utf-8') + return ans + + class WebView(RestartingWebEngineView): def __init__(self, parent=None): @@ -203,7 +210,7 @@ class WebView(RestartingWebEngineView): self.pageAction(QWebEnginePage.Reload).trigger() def clear(self): - self.setHtml('

 ', QUrl('{}://{}/'.format(FAKE_PROTOCOL, FAKE_HOST))) + self.setHtml(viewer_html(), QUrl('{}://{}/'.format(FAKE_PROTOCOL, FAKE_HOST))) @property def bridge(self): diff --git a/src/calibre/utils/rapydscript.py b/src/calibre/utils/rapydscript.py index 6e469151f3..909bff1f0c 100644 --- a/src/calibre/utils/rapydscript.py +++ b/src/calibre/utils/rapydscript.py @@ -225,6 +225,15 @@ def compile_editor(): def compile_viewer(): base = base_dir() + iconf = os.path.join(base, 'imgsrc', 'srv', 'generate.py') + g = {'__file__': iconf} + execfile(iconf, g) + icons = g['merge']().encode('utf-8') + with lopen(os.path.join(base, 'resources', 'content-server', 'reset.css'), 'rb') as f: + reset = f.read() + html = '\n{icons}'.format( + icons=icons, reset=reset) + rapydscript_dir = os.path.join(base, 'src', 'pyj') fname = os.path.join(rapydscript_dir, 'viewer-main.pyj') with lopen(fname, 'rb') as f: @@ -234,6 +243,7 @@ def compile_viewer(): '__FAKE_HOST__', FAKE_HOST, 1) base = os.path.join(base, 'resources') atomic_write(base, 'viewer.js', js) + atomic_write(base, 'viewer.html', html) def compile_srv():