This commit is contained in:
Kovid Goyal 2012-01-15 11:46:21 +05:30
parent ed603d914b
commit 929d6adf6f
3 changed files with 13 additions and 14 deletions

View File

@ -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

View File

@ -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):

View File

@ -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)