Fri, 09 Feb 2018 19:44:25 +0100
Fixed an issue related to the display of the web inspector window.
--- a/WebBrowser/WebBrowserView.py Fri Feb 09 18:58:21 2018 +0100 +++ b/WebBrowser/WebBrowserView.py Fri Feb 09 19:44:25 2018 +0100 @@ -1230,13 +1230,16 @@ """ Private slot to show the web inspector window. """ - if self.__inspector is None: - from .WebInspector import WebInspector - self.__inspector = WebInspector() - self.__inspector.setView(self, True) - self.__inspector.show() - else: - self.closeWebInspector() + from .WebInspector import WebInspector + if WebInspector.isEnabled(): + if self.__inspector is None: + self.__inspector = WebInspector() + self.__inspector.setView(self, True) + self.__inspector.inspectorClosed.connect( + self.closeWebInspector) + self.__inspector.show() + else: + self.closeWebInspector() def closeWebInspector(self): """
--- a/WebBrowser/WebBrowserWindow.py Fri Feb 09 18:58:21 2018 +0100 +++ b/WebBrowser/WebBrowserWindow.py Fri Feb 09 19:44:25 2018 +0100 @@ -175,9 +175,8 @@ self.__initActions() else: if Preferences.getWebBrowser("WebInspectorEnabled"): - os.putenv( - "QTWEBENGINE_REMOTE_DEBUGGING", - str(Preferences.getWebBrowser("WebInspectorPort"))) + os.environ["QTWEBENGINE_REMOTE_DEBUGGING"] = \ + str(Preferences.getWebBrowser("WebInspectorPort")) WebBrowserWindow.setUseQtHelp( self.__fromEric or qthelp or bool(searchWord))
--- 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):