Sat, 10 Apr 2021 18:38:27 +0200
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
# -*- coding: utf-8 -*- # Copyright (c) 2015 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> # """ Module implementing a QWebEngineView to load the web inspector in. """ from PyQt5.QtCore import pyqtSignal, QSize from PyQt5.QtWebEngineWidgets import ( QWebEngineView, QWebEnginePage, QWebEngineSettings ) import Preferences _VIEWS = [] 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 @param parent reference to the parent widget @type QWidget """ super().__init__(parent) self.__view = None self.__inspectElement = False self.__reloadGeometry() registerView(self) self.page().windowCloseRequested.connect(self.close) self.page().loadFinished.connect(self.__loadFinished) def closeEvent(self, evt): """ Protected method to save the geometry when closed. @param evt event object @type QCloseEvent """ Preferences.setGeometry("WebInspectorGeometry", self.saveGeometry()) super().closeEvent(evt) if evt.isAccepted(): self.inspectorClosed.emit() def __reloadGeometry(self): """ Private method to restore the geometry. """ geom = Preferences.getGeometry("WebInspectorGeometry") if geom.isEmpty(): s = QSize(600, 600) self.resize(s) else: self.restoreGeometry(geom) def setView(self, view, inspectElement=False): """ Public method to connect a view to this inspector. @param view reference to the view object @type WebBrowserView @param inspectElement flag indicating to start a web inspection @type bool """ self.__view = view if not self.isEnabled(): return self.__inspectElement = inspectElement self.page().setInspectedPage(self.__view.page()) def inspectElement(self): """ Public method to inspect an element. """ self.__inspectElement = True @classmethod def isEnabled(cls): """ Class method to check, if the web inspector is enabled. @return flag indicating the enabled state @rtype bool """ from WebBrowser.WebBrowserWindow import WebBrowserWindow if not WebBrowserWindow.webSettings().testAttribute( QWebEngineSettings.WebAttribute.JavascriptEnabled): return False return True def __loadFinished(self): """ Private slot handling the finished signal. """ if self.__inspectElement: self.__view.triggerPageAction( QWebEnginePage.WebAction.InspectElement) self.__inspectElement = False def registerView(view): """ Function to register a view. @param view reference to the view @type WebBrowserView """ if _VIEWS is None: return _VIEWS.insert(0, view) def unregisterView(view): """ Function to unregister a view. @param view reference to the view @type WebBrowserView """ if _VIEWS is None: return if view in _VIEWS: _VIEWS.remove(view) def pushView(view): """ Function to push a view to the front of the list. @param view reference to the view @type WebBrowserView """ if _VIEWS is None: return if view in _VIEWS: _VIEWS.remove(view) _VIEWS.insert(0, view)