Skip to content

Commit c79c41f

Browse files
committed
Set up JS logging for both backends
1 parent b766298 commit c79c41f

File tree

2 files changed

+31
-6
lines changed

2 files changed

+31
-6
lines changed

src/windows/views/webview_backend/webengine.py

+20-1
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,38 @@
3434

3535
from PyQt5.QtCore import QFileInfo, QUrl, Qt, QTimer
3636
from PyQt5.QtGui import QColor
37-
from PyQt5.QtWebEngineWidgets import QWebEngineView
37+
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
3838
from PyQt5.QtWebChannel import QWebChannel
3939

4040

41+
class LoggingWebEnginePage(QWebEnginePage):
42+
"""Override console.log message to display messages"""
43+
def javaScriptConsoleMessage(self, level, msg, line, source):
44+
log.log(
45+
self.levels[level],
46+
'%s@%Ld: %s' % (os.path.basename(source), line, msg))
47+
48+
def __init__(self, parent=None):
49+
super().__init__(parent=parent)
50+
self.setObjectName("LoggingWebEnginePage")
51+
self.levels = [logging.INFO, logging.WARNING, logging.ERROR]
52+
53+
4154
class TimelineWebEngineView(QWebEngineView):
4255
"""QtWebEngine Timeline Widget"""
4356

4457
def __init__(self):
4558
"""Initialization code required for widget"""
4659
super().__init__()
60+
self.setObjectName("TimelineWebEngineView")
61+
4762
self.document_is_ready = False
4863
self.html_path = os.path.join(info.PATH, 'timeline', 'index.html')
4964

65+
# Connect logging web page (for console.log)
66+
self.new_page = LoggingWebEnginePage(self)
67+
self.setPage(self.new_page)
68+
5069
# Set background color of timeline
5170
self.page().setBackgroundColor(QColor("#363636"))
5271

src/windows/views/webview_backend/webkit.py

+11-5
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,14 @@
3636
from PyQt5.QtWebKitWidgets import QWebView, QWebPage
3737

3838

39-
class LoggingWebPage(QWebPage):
39+
class LoggingWebKitPage(QWebPage):
4040
"""Override console.log message to display messages"""
41-
def javaScriptConsoleMessage(self, msg, line, source):
42-
log.warning('JS: %s line %d: %s' % (source, line, msg))
41+
def javaScriptConsoleMessage(self, msg, line, source, *args):
42+
log.warning('%s@L%d: %s' % (os.path.basename(source), line, msg))
43+
44+
def __init__(self, parent=None):
45+
super().__init__(parent=parent)
46+
self.setObjectName("LoggingWebKitPage")
4347

4448

4549
class TimelineWebKitView(QWebView):
@@ -48,15 +52,17 @@ class TimelineWebKitView(QWebView):
4852
def __init__(self):
4953
"""Initialization code required for widget"""
5054
super().__init__()
55+
self.setObjectName("TimeWebKitView")
56+
5157
self.document_is_ready = False
5258
self.html_path = os.path.join(info.PATH, 'timeline', 'index.html')
5359

5460
# Delete the webview when closed
5561
self.setAttribute(Qt.WA_DeleteOnClose)
5662

5763
# Connect logging web page (for console.log)
58-
page = LoggingWebPage()
59-
self.setPage(page)
64+
self.new_page = LoggingWebPage(self)
65+
self.setPage(self.new_page)
6066

6167
# Disable image caching on timeline
6268
self.settings().setObjectCacheCapacities(0, 0, 0)

0 commit comments

Comments
 (0)