Skip to content

Commit c79df9e

Browse files
committed
Incorporate changes from 'develop'
1 parent e11f23b commit c79df9e

File tree

2 files changed

+27
-23
lines changed

2 files changed

+27
-23
lines changed

src/windows/views/webview_backend/webengine.py

+18-14
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class LoggingWebEnginePage(QWebEnginePage):
4444
def javaScriptConsoleMessage(self, level, msg, line, source):
4545
log.log(
4646
self.levels[level],
47-
'%s@%Ld: %s' % (os.path.basename(source), line, msg))
47+
'%s@L%d: %s', os.path.basename(source), line, msg)
4848

4949
def __init__(self, parent=None):
5050
super().__init__(parent=parent)
@@ -82,20 +82,25 @@ def __init__(self):
8282
self.page().setWebChannel(self.webchannel)
8383

8484
# Connect signal of javascript initialization to our javascript reference init function
85+
log.info("WebEngine backend initializing")
8586
self.page().loadStarted.connect(self.setup_js_data)
8687

8788
def run_js(self, code, callback=None, retries=0):
88-
'''Run JS code async and optionally have a callback for response'''
89+
"""Run JS code async and optionally have a callback for response"""
8990
# Check if document.Ready has fired in JS
9091
if not self.document_is_ready:
9192
# Not ready, try again in a few moments
9293
if retries == 0:
9394
# Log the script contents, the first time
94-
log.debug("run_js() called before document ready event. Script queued: %s" % code)
95+
log.debug(
96+
"run_js() called before document ready event. Script queued: %s",
97+
code)
9598
elif retries % 5 == 0:
96-
log.warning("WebEngine backend still not ready after {} retries.".format(retries))
99+
log.warning(
100+
"WebEngine backend still not ready after %d retries.",
101+
retries)
97102
else:
98-
log.debug("Script queued, {} retries so far".format(retries))
103+
log.debug("Script queued, %d retries so far", retries)
99104
QTimer.singleShot(200, partial(self.run_js, code, callback, retries + 1))
100105
return None
101106
else:
@@ -107,27 +112,26 @@ def run_js(self, code, callback=None, retries=0):
107112

108113
def setup_js_data(self):
109114
# Export self as a javascript object in webview
115+
log.info("Registering WebChannel connection with WebEngine")
110116
self.webchannel.registerObject('timeline', self)
111117

112118
def get_html(self):
113119
"""Get HTML for Timeline, adjusted for mixin"""
114-
html = open(self.html_path, 'r', encoding='utf-8').read()
115-
html = html.replace('{{MIXIN_JS_INCLUDE}}',
116-
'''
117-
<script type="text/javascript" src="js/qwebchannel.js"></script>
120+
with open(self.html_path, 'r', encoding='utf-8') as f:
121+
html = f.read()
122+
html = html.replace(
123+
'<!--MIXIN_JS_INCLUDE-->',
124+
"""
118125
<script type="text/javascript" src="js/mixin_webengine.js"></script>
119-
120-
''')
126+
""")
121127
return html
122128

123129
def keyPressEvent(self, event):
124130
""" Keypress callback for timeline """
125131
key_value = event.key()
126-
if (key_value == Qt.Key_Shift or key_value == Qt.Key_Control):
127-
132+
if key_value in [Qt.Key_Shift, Qt.Key_Control]:
128133
# Only pass a few keystrokes to the webview (CTRL and SHIFT)
129134
return QWebEngineView.keyPressEvent(self, event)
130-
131135
else:
132136
# Ignore most keypresses
133137
event.ignore()

src/windows/views/webview_backend/webkit.py

+9-9
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ def __init__(self):
7171
self.setHtml(self.get_html(), QUrl.fromLocalFile(QFileInfo(self.html_path).absoluteFilePath()))
7272

7373
# Connect signal of javascript initialization to our javascript reference init function
74+
log.info("WebKit backend initializing")
7475
self.page().mainFrame().javaScriptWindowObjectCleared.connect(self.setup_js_data)
7576

7677
def run_js(self, code, callback=None, retries=0):
@@ -97,27 +98,26 @@ def run_js(self, code, callback=None, retries=0):
9798

9899
def setup_js_data(self):
99100
# Export self as a javascript object in webview
101+
log.info("Registering objects with WebKit")
100102
self.page().mainFrame().addToJavaScriptWindowObject('timeline', self)
101-
self.page().mainFrame().addToJavaScriptWindowObject('mainWindow', self.window)
102103

103104
def get_html(self):
104105
"""Get HTML for Timeline, adjusted for mixin"""
105-
html = open(self.html_path, 'r', encoding='utf-8').read()
106-
html = html.replace('{{MIXIN_JS_INCLUDE}}',
107-
'''
106+
with open(self.html_path, 'r', encoding='utf-8') as f:
107+
html = f.read()
108+
html = html.replace(
109+
'<!--MIXIN_JS_INCLUDE-->',
110+
"""
108111
<script type="text/javascript" src="js/mixin_webkit.js"></script>
109-
110-
''')
112+
""")
111113
return html
112114

113115
def keyPressEvent(self, event):
114116
""" Keypress callback for timeline """
115117
key_value = event.key()
116-
if (key_value == Qt.Key_Shift or key_value == Qt.Key_Control):
117-
118+
if key_value in [Qt.Key_Shift, Qt.Key_Control]:
118119
# Only pass a few keystrokes to the webview (CTRL and SHIFT)
119120
return QWebView.keyPressEvent(self, event)
120-
121121
else:
122122
# Ignore most keypresses
123123
event.ignore()

0 commit comments

Comments
 (0)