mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-06 23:24:30 -04:00
Infrastructure for loading viewer js
This commit is contained in:
parent
7b75c67e15
commit
6e14daac89
@ -283,11 +283,12 @@ class RapydScript(Command): # {{{
|
|||||||
help='Only compile the specified module')
|
help='Only compile the specified module')
|
||||||
|
|
||||||
def run(self, opts):
|
def run(self, opts):
|
||||||
from calibre.utils.rapydscript import compile_srv, compile_editor
|
from calibre.utils.rapydscript import compile_srv, compile_editor, compile_viewer
|
||||||
if opts.only_module:
|
if opts.only_module:
|
||||||
locals()['compile_' + opts.only_module]()
|
locals()['compile_' + opts.only_module]()
|
||||||
else:
|
else:
|
||||||
compile_editor()
|
compile_editor()
|
||||||
|
compile_viewer()
|
||||||
compile_srv()
|
compile_srv()
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ from __future__ import absolute_import, division, print_function, unicode_litera
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from PyQt5.Qt import QApplication, QBuffer, QByteArray, QSize
|
from PyQt5.Qt import QApplication, QBuffer, QByteArray, QSize, QUrl
|
||||||
from PyQt5.QtWebEngineCore import QWebEngineUrlSchemeHandler
|
from PyQt5.QtWebEngineCore import QWebEngineUrlSchemeHandler
|
||||||
from PyQt5.QtWebEngineWidgets import (
|
from PyQt5.QtWebEngineWidgets import (
|
||||||
QWebEnginePage, QWebEngineProfile, QWebEngineScript
|
QWebEnginePage, QWebEngineProfile, QWebEngineScript
|
||||||
@ -107,15 +107,10 @@ def create_profile():
|
|||||||
ua = 'calibre-viewer ' + __version__
|
ua = 'calibre-viewer ' + __version__
|
||||||
ans.setHttpUserAgent(ua)
|
ans.setHttpUserAgent(ua)
|
||||||
if is_running_from_develop:
|
if is_running_from_develop:
|
||||||
from calibre.utils.rapydscript import compile_editor
|
from calibre.utils.rapydscript import compile_viewer
|
||||||
compile_editor()
|
compile_viewer()
|
||||||
js = P('editor.js', data=True, allow_user_override=False)
|
js = P('viewer.js', data=True, allow_user_override=False)
|
||||||
cparser = P('csscolorparser.js', data=True, allow_user_override=False)
|
insert_scripts(ans, create_script('viewer.js', js))
|
||||||
|
|
||||||
insert_scripts(ans,
|
|
||||||
create_script('csscolorparser.js', cparser),
|
|
||||||
create_script('editor.js', js),
|
|
||||||
)
|
|
||||||
url_handler = UrlSchemeHandler(ans)
|
url_handler = UrlSchemeHandler(ans)
|
||||||
ans.installUrlSchemeHandler(QByteArray(FAKE_PROTOCOL.encode('ascii')), url_handler)
|
ans.installUrlSchemeHandler(QByteArray(FAKE_PROTOCOL.encode('ascii')), url_handler)
|
||||||
s = ans.settings()
|
s = ans.settings()
|
||||||
@ -177,6 +172,7 @@ class WebView(RestartingWebEngineView):
|
|||||||
self._page = WebPage(self)
|
self._page = WebPage(self)
|
||||||
self.setPage(self._page)
|
self.setPage(self._page)
|
||||||
self.setAcceptDrops(False)
|
self.setAcceptDrops(False)
|
||||||
|
self.clear()
|
||||||
|
|
||||||
def render_process_died(self):
|
def render_process_died(self):
|
||||||
if self.dead_renderer_error_shown:
|
if self.dead_renderer_error_shown:
|
||||||
@ -191,3 +187,6 @@ class WebView(RestartingWebEngineView):
|
|||||||
|
|
||||||
def refresh(self):
|
def refresh(self):
|
||||||
self.pageAction(QWebEnginePage.Reload).trigger()
|
self.pageAction(QWebEnginePage.Reload).trigger()
|
||||||
|
|
||||||
|
def clear(self):
|
||||||
|
self.setHtml('<p> ', QUrl('{}://{}/'.format(FAKE_PROTOCOL, FAKE_HOST)))
|
||||||
|
@ -221,6 +221,16 @@ def compile_editor():
|
|||||||
atomic_write(base, 'editor.js', js)
|
atomic_write(base, 'editor.js', js)
|
||||||
|
|
||||||
|
|
||||||
|
def compile_viewer():
|
||||||
|
base = base_dir()
|
||||||
|
rapydscript_dir = os.path.join(base, 'src', 'pyj')
|
||||||
|
fname = os.path.join(rapydscript_dir, 'viewer-main.pyj')
|
||||||
|
with lopen(fname, 'rb') as f:
|
||||||
|
js = compile_fast(f.read(), fname, js_version=6).replace('__SPECIAL_TITLE__', special_title, 1)
|
||||||
|
base = os.path.join(base, 'resources')
|
||||||
|
atomic_write(base, 'viewer.js', js)
|
||||||
|
|
||||||
|
|
||||||
def compile_srv():
|
def compile_srv():
|
||||||
base = base_dir()
|
base = base_dir()
|
||||||
iconf = os.path.join(base, 'imgsrc', 'srv', 'generate.py')
|
iconf = os.path.join(base, 'imgsrc', 'srv', 'generate.py')
|
||||||
|
5
src/pyj/viewer-main.pyj
Normal file
5
src/pyj/viewer-main.pyj
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# vim:fileencoding=utf-8
|
||||||
|
# License: GPL v3 Copyright: 2018, Kovid Goyal <kovid at kovidgoyal.net>
|
||||||
|
from __python__ import bound_methods, hash_literals
|
||||||
|
|
||||||
|
print('11111111111111', document.location.href)
|
Loading…
x
Reference in New Issue
Block a user