mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
...
This commit is contained in:
parent
ed603d914b
commit
929d6adf6f
@ -179,14 +179,16 @@ class Document(QWebPage): # {{{
|
||||
self.misc_config()
|
||||
self.after_load()
|
||||
|
||||
def __init__(self, shortcuts, parent=None, resize_callback=lambda: None):
|
||||
def __init__(self, shortcuts, parent=None, resize_callback=lambda: None,
|
||||
debug_javascript=False):
|
||||
QWebPage.__init__(self, parent)
|
||||
self.setObjectName("py_bridge")
|
||||
self.debug_javascript = False
|
||||
self.debug_javascript = debug_javascript
|
||||
self.resize_callback = resize_callback
|
||||
self.current_language = None
|
||||
self.loaded_javascript = False
|
||||
self.js_loader = None
|
||||
self.js_loader = JavaScriptLoader(
|
||||
dynamic_coffeescript=self.debug_javascript)
|
||||
|
||||
self.setLinkDelegationPolicy(self.DelegateAllLinks)
|
||||
self.scroll_marks = []
|
||||
@ -252,9 +254,6 @@ class Document(QWebPage): # {{{
|
||||
window.py_bridge.window_resized();
|
||||
}
|
||||
''')
|
||||
if self.js_loader is None:
|
||||
self.js_loader = JavaScriptLoader(
|
||||
dynamic_coffeescript=self.debug_javascript)
|
||||
self.loaded_lang = self.js_loader(self.mainFrame().evaluateJavaScript,
|
||||
self.current_language, self.hyphenate_default_lang)
|
||||
|
||||
@ -470,11 +469,10 @@ class DocumentView(QWebView): # {{{
|
||||
magnification_changed = pyqtSignal(object)
|
||||
DISABLED_BRUSH = QBrush(Qt.lightGray, Qt.Dense5Pattern)
|
||||
|
||||
def __init__(self, *args):
|
||||
QWebView.__init__(self, *args)
|
||||
def initialize_view(self, debug_javascript=False):
|
||||
self.flipper = SlideFlip(self)
|
||||
self.is_auto_repeat_event = False
|
||||
self.debug_javascript = False
|
||||
self.debug_javascript = debug_javascript
|
||||
self.shortcuts = Shortcuts(SHORTCUTS, 'shortcuts/viewer')
|
||||
self.self_closing_pat = re.compile(r'<([a-z1-6]+)\s+([^>]+)/>',
|
||||
re.IGNORECASE)
|
||||
@ -483,7 +481,8 @@ class DocumentView(QWebView): # {{{
|
||||
self.initial_pos = 0.0
|
||||
self.to_bottom = False
|
||||
self.document = Document(self.shortcuts, parent=self,
|
||||
resize_callback=self.viewport_resized)
|
||||
resize_callback=self.viewport_resized,
|
||||
debug_javascript=debug_javascript)
|
||||
self.setPage(self.document)
|
||||
self.manager = None
|
||||
self._reference_mode = False
|
||||
|
@ -39,14 +39,14 @@ class JavaScriptLoader(object):
|
||||
self._cache = {}
|
||||
self._hp_cache = {}
|
||||
|
||||
def __getattr__(self, name):
|
||||
def get(self, name):
|
||||
ans = self._cache.get(name, None)
|
||||
if ans is None:
|
||||
src = self.CS.get(name, None)
|
||||
if src is None:
|
||||
src = self.JS.get(name, None)
|
||||
if src is None:
|
||||
raise AttributeError('No such resource: %s'%name)
|
||||
raise KeyError('No such resource: %s'%name)
|
||||
ans = P(src, data=True,
|
||||
allow_user_override=False).decode('utf-8')
|
||||
else:
|
||||
@ -70,7 +70,7 @@ class JavaScriptLoader(object):
|
||||
|
||||
def __call__(self, evaljs, lang, default_lang):
|
||||
for x in self.ORDER:
|
||||
src = getattr(self, x)
|
||||
src = self.get(x)
|
||||
evaljs(src)
|
||||
|
||||
def lang_name(l):
|
||||
|
@ -175,6 +175,7 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
|
||||
def __init__(self, pathtoebook=None, debug_javascript=False, open_at=None):
|
||||
MainWindow.__init__(self, None)
|
||||
self.setupUi(self)
|
||||
self.view.initialize_view(debug_javascript)
|
||||
self.view.magnification_changed.connect(self.magnification_changed)
|
||||
self.show_toc_on_open = False
|
||||
self.current_book_has_toc = False
|
||||
@ -215,7 +216,6 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
|
||||
self.search.setMinimumWidth(200)
|
||||
self.tool_bar2.insertWidget(self.action_find_next, self.search)
|
||||
self.view.set_manager(self)
|
||||
self.view.document.debug_javascript = debug_javascript
|
||||
self.pi = ProgressIndicator(self)
|
||||
self.toc.setVisible(False)
|
||||
self.action_quit = QAction(self)
|
||||
|
Loading…
x
Reference in New Issue
Block a user