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