From 8c9eeb028ff41784425336eeaf9dd7aad8bc420c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 3 May 2015 06:45:26 +0530 Subject: [PATCH] Viewer: Add the epubReadingSystem JS object --- resources/compiled_coffeescript.zip | Bin 103967 -> 104711 bytes src/calibre/ebooks/oeb/display/utils.coffee | 10 ++++++++++ src/calibre/gui2/viewer/documentview.py | 6 +++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/resources/compiled_coffeescript.zip b/resources/compiled_coffeescript.zip index 733855099381ebe1851d312822b1381bb7eb2edf..f1d9889985ba14c49259ead20af0290a09d9505b 100644 GIT binary patch delta 683 zcmY*XO=uHA7|j=_G+1}+Dm1F z(Uq!RDVr_RVs)Yt&DNK#YC})yw9e9`$qdsurAdvp8n%@t8l#qNFjFFHA>52WzOfQNI2#aL~?zK~Mbu!T5U{Zu@`aaBl}9cy9-C{#&XzT=8GM*#|#z2;mrquz!?e zg2O3i7RHm)IYx8E{FE$D=Sw9;R@jPMnkulIwp3I~8qF881x-O8HK0IO=IMk{z{f{`gR$4 z#l%KwGDx(%lS}>6N zZW^PEcz`!68_;kDE+Blx#K539fsx@KQ}y%<(-}pk`%Y)B|uH9#lvsvBD*TcjizrKTjACmWhrSeh6mB^#tBC!43Hnxq(; zCYhL-n_8L~O|PHMC_b5Y8Q1i8(;2NH`tM9; # {{{ + window.navigator.epubReadingSystem = { + 'name':name, 'version':version, 'layoutStyle':layout, + 'hasFeature': (feature, version=1.0) -> + if (version == null or version == 1.0) and feature.toLowerCase() in features + return true + return false + } + # }}} + if window? window.calibre_utils = new CalibreUtils() diff --git a/src/calibre/gui2/viewer/documentview.py b/src/calibre/gui2/viewer/documentview.py index 4443e04f66..1487fd8686 100644 --- a/src/calibre/gui2/viewer/documentview.py +++ b/src/calibre/gui2/viewer/documentview.py @@ -7,6 +7,7 @@ __docformat__ = 'restructuredtext en' import os, math, json from base64 import b64encode from functools import partial +from future_builtins import map from PyQt5.Qt import ( QSize, QSizePolicy, QUrl, Qt, pyqtProperty, QPainter, QPalette, QBrush, @@ -30,7 +31,7 @@ from calibre.gui2.viewer.inspector import WebInspector from calibre.gui2.viewer.gestures import GestureHandler from calibre.gui2.viewer.footnote import Footnotes from calibre.ebooks.oeb.display.webview import load_html -from calibre.constants import isxp, iswindows, DEBUG +from calibre.constants import isxp, iswindows, DEBUG, __version__ # }}} def apply_settings(settings, opts): @@ -207,6 +208,9 @@ class Document(QWebPage): # {{{ evaljs = self.mainFrame().evaluateJavaScript self.loaded_lang = self.js_loader(evaljs, self.current_language, self.hyphenate_default_lang) + evaljs('window.calibre_utils.setup_epub_reading_system(%s, %s, %s, %s)' % tuple(map(json.dumps, ( + 'calibre-desktop', __version__, 'paginated' if self.in_paged_mode else 'scrolling', + 'dom-manipulation layout-changes mouse-events keyboard-events'.split())))) mjpath = P(u'viewer/mathjax').replace(os.sep, '/') if iswindows: mjpath = u'/' + mjpath