Fixed an issue related to the display of the web inspector window.

Fri, 09 Feb 2018 19:44:25 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 09 Feb 2018 19:44:25 +0100
changeset 6126
6c4509eceea2
parent 6125
bb1c79bf4f33
child 6127
128d9567a533

Fixed an issue related to the display of the web inspector window.

WebBrowser/WebBrowserView.py file | annotate | diff | comparison | revisions
WebBrowser/WebBrowserWindow.py file | annotate | diff | comparison | revisions
WebBrowser/WebInspector.py file | annotate | diff | comparison | revisions
diff -r bb1c79bf4f33 -r 6c4509eceea2 WebBrowser/WebBrowserView.py
--- 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):
         """
diff -r bb1c79bf4f33 -r 6c4509eceea2 WebBrowser/WebBrowserWindow.py
--- 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))
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):

eric ide

mercurial