diff -r bb1c79bf4f33 -r 6c4509eceea2 WebBrowser/WebInspector.py --- a/WebBrowser/WebInspector.py Fri Feb 09 18:58:21 2018 +0100 +++ b/WebBrowser/WebInspector.py Fri Feb 09 19:44:25 2018 +0100 @@ -14,10 +14,12 @@ pass import json +import os -from PyQt5.QtCore import QSize, QUrl +from PyQt5.QtCore import pyqtSignal, QSize, QUrl from PyQt5.QtNetwork import QNetworkRequest -from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage +from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage, \ + QWebEngineSettings import Preferences @@ -27,7 +29,12 @@ class WebInspector(QWebEngineView): """ Class implementing a QWebEngineView to load the web inspector in. + + @signal inspectorClosed emitted to indicate the closing of the inspector + window """ + inspectorClosed = pyqtSignal() + def __init__(self, parent=None): """ Constructor @@ -56,6 +63,9 @@ """ Preferences.setGeometry("WebInspectorGeometry", self.saveGeometry()) super(WebInspector, self).closeEvent(evt) + + if evt.isAccepted(): + self.inspectorClosed.emit() def __reloadGeometry(self): """ @@ -123,13 +133,21 @@ """ self.__inspectElement = True - def isEnabled(self): + @classmethod + def isEnabled(cls): """ - Public method to check, if the web inspector is enabled. + Class method to check, if the web inspector is enabled. @return flag indicating the enabled state @rtype bool """ + if not os.getenv("QTWEBENGINE_REMOTE_DEBUGGING"): + return False + + if not QWebEngineSettings.defaultSettings().testAttribute( + QWebEngineSettings.JavascriptEnabled): + return False + return Preferences.getWebBrowser("WebInspectorEnabled") def __loadFinished(self):