WebBrowser/WebInspector.py

changeset 6126
6c4509eceea2
parent 6048
82ad8ec9548c
child 6127
128d9567a533
--- 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