@@ -44,7 +44,7 @@ class LoggingWebEnginePage(QWebEnginePage):
44
44
def javaScriptConsoleMessage (self , level , msg , line , source ):
45
45
log .log (
46
46
self .levels [level ],
47
- '%s@%Ld : %s' % ( os .path .basename (source ), line , msg ) )
47
+ '%s@L%d : %s' , os .path .basename (source ), line , msg )
48
48
49
49
def __init__ (self , parent = None ):
50
50
super ().__init__ (parent = parent )
@@ -82,20 +82,25 @@ def __init__(self):
82
82
self .page ().setWebChannel (self .webchannel )
83
83
84
84
# Connect signal of javascript initialization to our javascript reference init function
85
+ log .info ("WebEngine backend initializing" )
85
86
self .page ().loadStarted .connect (self .setup_js_data )
86
87
87
88
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"""
89
90
# Check if document.Ready has fired in JS
90
91
if not self .document_is_ready :
91
92
# Not ready, try again in a few moments
92
93
if retries == 0 :
93
94
# 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 )
95
98
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 )
97
102
else :
98
- log .debug ("Script queued, {} retries so far" . format ( retries ) )
103
+ log .debug ("Script queued, %d retries so far" , retries )
99
104
QTimer .singleShot (200 , partial (self .run_js , code , callback , retries + 1 ))
100
105
return None
101
106
else :
@@ -107,27 +112,26 @@ def run_js(self, code, callback=None, retries=0):
107
112
108
113
def setup_js_data (self ):
109
114
# Export self as a javascript object in webview
115
+ log .info ("Registering WebChannel connection with WebEngine" )
110
116
self .webchannel .registerObject ('timeline' , self )
111
117
112
118
def get_html (self ):
113
119
"""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
+ """
118
125
<script type="text/javascript" src="js/mixin_webengine.js"></script>
119
-
120
- ''' )
126
+ """ )
121
127
return html
122
128
123
129
def keyPressEvent (self , event ):
124
130
""" Keypress callback for timeline """
125
131
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 ]:
128
133
# Only pass a few keystrokes to the webview (CTRL and SHIFT)
129
134
return QWebEngineView .keyPressEvent (self , event )
130
-
131
135
else :
132
136
# Ignore most keypresses
133
137
event .ignore ()
0 commit comments