src/eric7/HelpViewer/HelpViewerWidget.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9413
80c06d472826
--- a/src/eric7/HelpViewer/HelpViewerWidget.py	Wed Jul 13 11:16:20 2022 +0200
+++ b/src/eric7/HelpViewer/HelpViewerWidget.py	Wed Jul 13 14:55:47 2022 +0200
@@ -13,12 +13,25 @@
 from PyQt6.QtGui import QAction, QFont, QFontMetrics
 from PyQt6.QtHelp import QHelpEngine
 from PyQt6.QtWidgets import (
-    QWidget, QHBoxLayout, QVBoxLayout, QComboBox, QSizePolicy, QStackedWidget,
-    QToolButton, QButtonGroup, QAbstractButton, QMenu, QFrame, QLabel,
-    QProgressBar, QSplitter
+    QWidget,
+    QHBoxLayout,
+    QVBoxLayout,
+    QComboBox,
+    QSizePolicy,
+    QStackedWidget,
+    QToolButton,
+    QButtonGroup,
+    QAbstractButton,
+    QMenu,
+    QFrame,
+    QLabel,
+    QProgressBar,
+    QSplitter,
 )
+
 try:
     from PyQt6.QtWebEngineCore import QWebEngineProfile, QWebEngineSettings
+
     WEBENGINE_AVAILABLE = True
 except ImportError:
     WEBENGINE_AVAILABLE = False
@@ -26,7 +39,8 @@
 from EricWidgets import EricFileDialog, EricMessageBox
 from EricWidgets.EricApplication import ericApp
 from EricWidgets.EricTextEditSearchWidget import (
-    EricTextEditSearchWidget, EricTextEditType
+    EricTextEditSearchWidget,
+    EricTextEditType,
 )
 
 import UI.PixmapCache
@@ -45,191 +59,185 @@
     """
     Class implementing an embedded viewer for QtHelp and local HTML files.
     """
-    MaxHistoryItems = 20    # max. number of history items to be shown
-    
+
+    MaxHistoryItems = 20  # max. number of history items to be shown
+
     EmpytDocument_Light = (
-        '''<!DOCTYPE html>\n'''
-        '''<html lang="EN">\n'''
-        '''<head>\n'''
-        '''<style type="text/css">\n'''
-        '''html {background-color: #ffffff;}\n'''
-        '''body {background-color: #ffffff;\n'''
-        '''      color: #000000;\n'''
-        '''      margin: 10px 10px 10px 10px;\n'''
-        '''}\n'''
-        '''</style'''
-        '''</head>\n'''
-        '''<body>\n'''
-        '''</body>\n'''
-        '''</html>'''
+        """<!DOCTYPE html>\n"""
+        """<html lang="EN">\n"""
+        """<head>\n"""
+        """<style type="text/css">\n"""
+        """html {background-color: #ffffff;}\n"""
+        """body {background-color: #ffffff;\n"""
+        """      color: #000000;\n"""
+        """      margin: 10px 10px 10px 10px;\n"""
+        """}\n"""
+        """</style"""
+        """</head>\n"""
+        """<body>\n"""
+        """</body>\n"""
+        """</html>"""
     )
     EmpytDocument_Dark = (
-        '''<!DOCTYPE html>\n'''
-        '''<html lang="EN">\n'''
-        '''<head>\n'''
-        '''<style type="text/css">\n'''
-        '''html {background-color: #262626;}\n'''
-        '''body {background-color: #262626;\n'''
-        '''      color: #ffffff;\n'''
-        '''      margin: 10px 10px 10px 10px;\n'''
-        '''}\n'''
-        '''</style'''
-        '''</head>\n'''
-        '''<body>\n'''
-        '''</body>\n'''
-        '''</html>'''
+        """<!DOCTYPE html>\n"""
+        """<html lang="EN">\n"""
+        """<head>\n"""
+        """<style type="text/css">\n"""
+        """html {background-color: #262626;}\n"""
+        """body {background-color: #262626;\n"""
+        """      color: #ffffff;\n"""
+        """      margin: 10px 10px 10px 10px;\n"""
+        """}\n"""
+        """</style"""
+        """</head>\n"""
+        """<body>\n"""
+        """</body>\n"""
+        """</html>"""
     )
-    
+
     def __init__(self, parent=None):
         """
         Constructor
-        
+
         @param parent reference to the parent widget (defaults to None)
         @type QWidget (optional)
         """
         super().__init__(parent)
         self.setObjectName("HelpViewerWidget")
-        
+
         self.__ui = parent
-        
+
         self.__initHelpEngine()
-        
+
         self.__layout = QVBoxLayout()
         self.__layout.setObjectName("MainLayout")
         self.__layout.setContentsMargins(0, 3, 0, 0)
-        
+
         ###################################################################
         ## Help Topic Selector
         ###################################################################
-        
+
         self.__selectorLayout = QHBoxLayout()
-        
+
         self.__helpSelector = QComboBox(self)
         self.__helpSelector.setSizePolicy(
-            QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
+            QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred
+        )
         self.__selectorLayout.addWidget(self.__helpSelector)
         self.__populateHelpSelector()
         self.__helpSelector.activated.connect(self.__helpTopicSelected)
-        
+
         self.__openButton = QToolButton(self)
         self.__openButton.setIcon(UI.PixmapCache.getIcon("open"))
         self.__openButton.setToolTip(self.tr("Open a local file"))
         self.__openButton.clicked.connect(self.__openFile)
         self.__selectorLayout.addWidget(self.__openButton)
-        
+
         self.__actionsButton = QToolButton(self)
-        self.__actionsButton.setIcon(
-            UI.PixmapCache.getIcon("actionsToolButton"))
-        self.__actionsButton.setToolTip(
-            self.tr("Select action from menu"))
-        self.__actionsButton.setPopupMode(
-            QToolButton.ToolButtonPopupMode.InstantPopup)
+        self.__actionsButton.setIcon(UI.PixmapCache.getIcon("actionsToolButton"))
+        self.__actionsButton.setToolTip(self.tr("Select action from menu"))
+        self.__actionsButton.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup)
         self.__selectorLayout.addWidget(self.__actionsButton)
-        
+
         self.__layout.addLayout(self.__selectorLayout)
-        
+
         ###################################################################
         ## Navigation Buttons
         ###################################################################
-        
+
         self.__navButtonsLayout = QHBoxLayout()
-        
+
         self.__navButtonsLayout.addStretch()
-        
+
         self.__backwardButton = QToolButton(self)
         self.__backwardButton.setIcon(UI.PixmapCache.getIcon("back"))
         self.__backwardButton.setToolTip(self.tr("Move one page backward"))
         self.__backwardButton.clicked.connect(self.__backward)
-        
+
         self.__forwardButton = QToolButton(self)
         self.__forwardButton.setIcon(UI.PixmapCache.getIcon("forward"))
         self.__forwardButton.setToolTip(self.tr("Move one page forward"))
         self.__forwardButton.clicked.connect(self.__forward)
-        
+
         self.__backForButtonLayout = QHBoxLayout()
         self.__backForButtonLayout.setContentsMargins(0, 0, 0, 0)
         self.__backForButtonLayout.setSpacing(0)
         self.__backForButtonLayout.addWidget(self.__backwardButton)
         self.__backForButtonLayout.addWidget(self.__forwardButton)
         self.__navButtonsLayout.addLayout(self.__backForButtonLayout)
-        
+
         self.__reloadButton = QToolButton(self)
         self.__reloadButton.setIcon(UI.PixmapCache.getIcon("reload"))
         self.__reloadButton.setToolTip(self.tr("Reload the current page"))
         self.__reloadButton.clicked.connect(self.__reload)
         self.__navButtonsLayout.addWidget(self.__reloadButton)
-        
+
         self.__buttonLine1 = QFrame(self)
         self.__buttonLine1.setFrameShape(QFrame.Shape.VLine)
         self.__buttonLine1.setFrameShadow(QFrame.Shadow.Sunken)
         self.__navButtonsLayout.addWidget(self.__buttonLine1)
-        
+
         self.__zoomInButton = QToolButton(self)
         self.__zoomInButton.setIcon(UI.PixmapCache.getIcon("zoomIn"))
-        self.__zoomInButton.setToolTip(
-            self.tr("Zoom in on the current page"))
+        self.__zoomInButton.setToolTip(self.tr("Zoom in on the current page"))
         self.__zoomInButton.clicked.connect(self.__zoomIn)
         self.__navButtonsLayout.addWidget(self.__zoomInButton)
-        
+
         self.__zoomOutButton = QToolButton(self)
         self.__zoomOutButton.setIcon(UI.PixmapCache.getIcon("zoomOut"))
-        self.__zoomOutButton.setToolTip(
-            self.tr("Zoom out on the current page"))
+        self.__zoomOutButton.setToolTip(self.tr("Zoom out on the current page"))
         self.__zoomOutButton.clicked.connect(self.__zoomOut)
         self.__navButtonsLayout.addWidget(self.__zoomOutButton)
-        
+
         self.__zoomResetButton = QToolButton(self)
         self.__zoomResetButton.setIcon(UI.PixmapCache.getIcon("zoomReset"))
         self.__zoomResetButton.setToolTip(
-            self.tr("Reset the zoom level of the current page"))
+            self.tr("Reset the zoom level of the current page")
+        )
         self.__zoomResetButton.clicked.connect(self.__zoomReset)
         self.__navButtonsLayout.addWidget(self.__zoomResetButton)
-        
+
         self.__buttonLine2 = QFrame(self)
         self.__buttonLine2.setFrameShape(QFrame.Shape.VLine)
         self.__buttonLine2.setFrameShadow(QFrame.Shadow.Sunken)
         self.__navButtonsLayout.addWidget(self.__buttonLine2)
-        
+
         self.__addPageButton = QToolButton(self)
         self.__addPageButton.setIcon(UI.PixmapCache.getIcon("plus"))
-        self.__addPageButton.setToolTip(
-            self.tr("Add a new empty page"))
+        self.__addPageButton.setToolTip(self.tr("Add a new empty page"))
         self.__addPageButton.clicked.connect(self.__addNewPage)
         self.__navButtonsLayout.addWidget(self.__addPageButton)
-        
+
         self.__closePageButton = QToolButton(self)
         self.__closePageButton.setIcon(UI.PixmapCache.getIcon("minus"))
-        self.__closePageButton.setToolTip(
-            self.tr("Close the current page"))
+        self.__closePageButton.setToolTip(self.tr("Close the current page"))
         self.__closePageButton.clicked.connect(self.closeCurrentPage)
         self.__navButtonsLayout.addWidget(self.__closePageButton)
-        
+
         self.__buttonLine3 = QFrame(self)
         self.__buttonLine3.setFrameShape(QFrame.Shape.VLine)
         self.__buttonLine3.setFrameShadow(QFrame.Shadow.Sunken)
         self.__navButtonsLayout.addWidget(self.__buttonLine3)
-        
+
         self.__searchButton = QToolButton(self)
         self.__searchButton.setIcon(UI.PixmapCache.getIcon("find"))
-        self.__searchButton.setToolTip(
-            self.tr("Show or hide the search pane"))
+        self.__searchButton.setToolTip(self.tr("Show or hide the search pane"))
         self.__searchButton.setCheckable(True)
         self.__searchButton.setChecked(False)
         self.__searchButton.clicked.connect(self.showHideSearch)
         self.__navButtonsLayout.addWidget(self.__searchButton)
-        
+
         self.__navButtonsLayout.addStretch()
-        
+
         self.__layout.addLayout(self.__navButtonsLayout)
-                
+
         self.__backMenu = QMenu(self)
         self.__backMenu.triggered.connect(self.__navigationMenuActionTriggered)
         self.__backwardButton.setMenu(self.__backMenu)
         self.__backMenu.aboutToShow.connect(self.__showBackMenu)
-        
+
         self.__forwardMenu = QMenu(self)
-        self.__forwardMenu.triggered.connect(
-            self.__navigationMenuActionTriggered)
+        self.__forwardMenu.triggered.connect(self.__navigationMenuActionTriggered)
         self.__forwardButton.setMenu(self.__forwardMenu)
         self.__forwardMenu.aboutToShow.connect(self.__showForwardMenu)
 
@@ -237,102 +245,109 @@
         ## Center widget with help pages, search widget and navigation
         ## widgets
         ###################################################################
-        
+
         self.__centerSplitter = QSplitter(Qt.Orientation.Vertical, self)
         self.__centerSplitter.setChildrenCollapsible(False)
         self.__layout.addWidget(self.__centerSplitter)
-        
+
         self.__helpCenterWidget = QWidget(self)
         self.__helpCenterLayout = QVBoxLayout()
         self.__helpCenterLayout.setContentsMargins(0, 0, 0, 0)
         self.__helpCenterWidget.setLayout(self.__helpCenterLayout)
-        
+
         ###################################################################
-        
+
         self.__helpStack = QStackedWidget(self)
         self.__helpStack.setSizePolicy(
-            QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
+            QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding
+        )
         self.__helpCenterLayout.addWidget(self.__helpStack)
-        
+
         ###################################################################
-        
+
         self.__searchWidget = EricTextEditSearchWidget(
-            self, widthForHeight=False, enableClose=True)
+            self, widthForHeight=False, enableClose=True
+        )
         self.__helpCenterLayout.addWidget(self.__searchWidget)
         self.__searchWidget.closePressed.connect(self.__searchWidgetClosed)
         self.__searchWidget.hide()
-        
+
         self.__centerSplitter.addWidget(self.__helpCenterWidget)
-        
+
         ###################################################################
-        
+
         self.__helpNavigationStack = QStackedWidget(self)
         self.__helpNavigationStack.setSizePolicy(
-            QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
+            QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred
+        )
         self.__helpNavigationStack.setMinimumHeight(100)
         self.__centerSplitter.addWidget(self.__helpNavigationStack)
         self.__populateNavigationStack()
-        
+
         ###################################################################
         ## Bottom buttons
         ###################################################################
-        
+
         self.__buttonLayout = QHBoxLayout()
-        
+
         self.__buttonGroup = QButtonGroup(self)
         self.__buttonGroup.setExclusive(True)
-        self.__buttonGroup.buttonClicked.connect(
-            self.__selectNavigationWidget)
-        
+        self.__buttonGroup.buttonClicked.connect(self.__selectNavigationWidget)
+
         self.__buttonLayout.addStretch()
-        
+
         self.__openPagesButton = self.__addNavigationButton(
-            "fileMisc", self.tr("Show list of open pages"))
+            "fileMisc", self.tr("Show list of open pages")
+        )
         self.__helpTocButton = self.__addNavigationButton(
-            "tableOfContents", self.tr("Show the table of contents"))
+            "tableOfContents", self.tr("Show the table of contents")
+        )
         self.__helpIndexButton = self.__addNavigationButton(
-            "helpIndex", self.tr("Show the help document index"))
+            "helpIndex", self.tr("Show the help document index")
+        )
         self.__helpSearchButton = self.__addNavigationButton(
-            "documentFind", self.tr("Show the help search window"))
+            "documentFind", self.tr("Show the help search window")
+        )
         self.__bookmarksButton = self.__addNavigationButton(
-            "bookmark22", self.tr("Show list of bookmarks"))
-        
+            "bookmark22", self.tr("Show list of bookmarks")
+        )
+
         self.__buttonLayout.addStretch()
-        
+
         self.__helpFilterWidget = self.__initFilterWidget()
         self.__buttonLayout.addWidget(self.__helpFilterWidget)
-        
+
         self.__layout.addLayout(self.__buttonLayout)
-        
+
         self.__indexingProgressWidget = self.__initIndexingProgress()
         self.__layout.addWidget(self.__indexingProgressWidget)
         self.__indexingProgressWidget.hide()
-        
+
         ###################################################################
-        
+
         self.setLayout(self.__layout)
-        
+
         self.__openPagesButton.setChecked(True)
-        
+
         self.__ui.preferencesChanged.connect(self.__populateHelpSelector)
-        
+
         self.__initActionsMenu()
-        
+
         if WEBENGINE_AVAILABLE:
             self.__initQWebEngine()
             self.__ui.preferencesChanged.connect(self.__initQWebEngineSettings)
-        
+
         self.addPage()
         self.__checkActionButtons()
-        
+
         self.__centerSplitter.setSizes([900, 150])
-        
+
         QTimer.singleShot(50, self.__lookForNewDocumentation)
-    
+
     def __addNavigationButton(self, iconName, toolTip):
         """
         Private method to create and add a navigation button.
-        
+
         @param iconName name of the icon
         @type str
         @param toolTip tooltip to be shown
@@ -346,100 +361,85 @@
         button.setCheckable(True)
         self.__buttonGroup.addButton(button)
         self.__buttonLayout.addWidget(button)
-        
+
         return button
-    
+
     def __populateNavigationStack(self):
         """
         Private method to populate the stack of navigation widgets.
         """
         # Open Pages
         self.__openPagesList = OpenPagesWidget(self.__helpStack, self)
-        self.__openPagesList.currentPageChanged.connect(
-            self.__currentPageChanged)
+        self.__openPagesList.currentPageChanged.connect(self.__currentPageChanged)
         self.__helpNavigationStack.addWidget(self.__openPagesList)
-        
+
         # QtHelp TOC widget
-        self.__helpTocWidget = HelpTocWidget(
-            self.__helpEngine, internal=True)
+        self.__helpTocWidget = HelpTocWidget(self.__helpEngine, internal=True)
         self.__helpTocWidget.escapePressed.connect(self.__activateCurrentPage)
         self.__helpTocWidget.openUrl.connect(self.openUrl)
         self.__helpTocWidget.newTab.connect(self.openUrlNewPage)
-        self.__helpTocWidget.newBackgroundTab.connect(
-            self.openUrlNewBackgroundPage)
+        self.__helpTocWidget.newBackgroundTab.connect(self.openUrlNewBackgroundPage)
         self.__helpNavigationStack.addWidget(self.__helpTocWidget)
-        
+
         # QtHelp Index widget
-        self.__helpIndexWidget = HelpIndexWidget(
-            self.__helpEngine, internal=True)
-        self.__helpIndexWidget.escapePressed.connect(
-            self.__activateCurrentPage)
+        self.__helpIndexWidget = HelpIndexWidget(self.__helpEngine, internal=True)
+        self.__helpIndexWidget.escapePressed.connect(self.__activateCurrentPage)
         self.__helpIndexWidget.openUrl.connect(self.openUrl)
         self.__helpIndexWidget.newTab.connect(self.openUrlNewPage)
-        self.__helpIndexWidget.newBackgroundTab.connect(
-            self.openUrlNewBackgroundPage)
+        self.__helpIndexWidget.newBackgroundTab.connect(self.openUrlNewBackgroundPage)
         self.__helpNavigationStack.addWidget(self.__helpIndexWidget)
-        
+
         # QtHelp Search widget
         self.__indexing = False
         self.__indexingProgress = None
         self.__helpSearchEngine = self.__helpEngine.searchEngine()
-        self.__helpSearchEngine.indexingStarted.connect(
-            self.__indexingStarted)
-        self.__helpSearchEngine.indexingFinished.connect(
-            self.__indexingFinished)
-        
+        self.__helpSearchEngine.indexingStarted.connect(self.__indexingStarted)
+        self.__helpSearchEngine.indexingFinished.connect(self.__indexingFinished)
+
         self.__helpSearchWidget = HelpSearchWidget(
-            self.__helpSearchEngine, internal=True)
-        self.__helpSearchWidget.escapePressed.connect(
-            self.__activateCurrentPage)
+            self.__helpSearchEngine, internal=True
+        )
+        self.__helpSearchWidget.escapePressed.connect(self.__activateCurrentPage)
         self.__helpSearchWidget.openUrl.connect(self.openUrl)
         self.__helpSearchWidget.newTab.connect(self.openUrlNewPage)
-        self.__helpSearchWidget.newBackgroundTab.connect(
-            self.openUrlNewBackgroundPage)
+        self.__helpSearchWidget.newBackgroundTab.connect(self.openUrlNewBackgroundPage)
         self.__helpNavigationStack.addWidget(self.__helpSearchWidget)
-        
+
         # Bookmarks widget
         self.__bookmarksList = HelpBookmarksWidget(self)
         self.__bookmarksList.escapePressed.connect(self.__activateCurrentPage)
         self.__bookmarksList.openUrl.connect(self.openUrl)
         self.__bookmarksList.newTab.connect(self.openUrlNewPage)
-        self.__bookmarksList.newBackgroundTab.connect(
-            self.openUrlNewBackgroundPage)
+        self.__bookmarksList.newBackgroundTab.connect(self.openUrlNewBackgroundPage)
         self.__helpNavigationStack.addWidget(self.__bookmarksList)
-    
+
     @pyqtSlot(QAbstractButton)
     def __selectNavigationWidget(self, button):
         """
         Private slot to select the navigation widget.
-        
+
         @param button reference to the clicked button
         @type QAbstractButton
         """
         if button == self.__openPagesButton:
-            self.__helpNavigationStack.setCurrentWidget(
-                self.__openPagesList)
+            self.__helpNavigationStack.setCurrentWidget(self.__openPagesList)
         elif button == self.__helpTocButton:
-            self.__helpNavigationStack.setCurrentWidget(
-                self.__helpTocWidget)
+            self.__helpNavigationStack.setCurrentWidget(self.__helpTocWidget)
         elif button == self.__helpIndexButton:
-            self.__helpNavigationStack.setCurrentWidget(
-                self.__helpIndexWidget)
+            self.__helpNavigationStack.setCurrentWidget(self.__helpIndexWidget)
         elif button == self.__helpSearchButton:
-            self.__helpNavigationStack.setCurrentWidget(
-                self.__helpSearchWidget)
+            self.__helpNavigationStack.setCurrentWidget(self.__helpSearchWidget)
         elif button == self.__bookmarksButton:
-            self.__helpNavigationStack.setCurrentWidget(
-                self.__bookmarksList)
-    
+            self.__helpNavigationStack.setCurrentWidget(self.__bookmarksList)
+
     def __populateHelpSelector(self):
         """
         Private method to populate the help selection combo box.
         """
         self.__helpSelector.clear()
-        
+
         self.__helpSelector.addItem("", "")
-        
+
         for key, topic in [
             ("EricDocDir", self.tr("eric API Documentation")),
             ("PythonDocDir", self.tr("Python 3 Documentation")),
@@ -453,7 +453,7 @@
             urlStr = Preferences.getHelp(key)
             if urlStr:
                 self.__helpSelector.addItem(topic, urlStr)
-    
+
     @pyqtSlot()
     def __helpTopicSelected(self):
         """
@@ -465,11 +465,11 @@
             self.openUrl(url)
         else:
             self.openUrl(QUrl("about:blank"))
-    
+
     def activate(self, searchWord=None, url=None):
         """
         Public method to activate the widget and search for a given word.
-        
+
         @param searchWord word to search for (defaults to None)
         @type str (optional)
         @param url URL to show in a new page
@@ -485,19 +485,19 @@
             cv = self.currentViewer()
             if cv:
                 cv.setFocus(Qt.FocusReason.OtherFocusReason)
-            
+
             if searchWord:
                 self.searchQtHelp(searchWord)
-    
+
     def shutdown(self):
         """
         Public method to perform shut down actions.
         """
         self.__helpSearchEngine.cancelIndexing()
         self.__helpSearchEngine.cancelSearching()
-        
+
         self.__helpInstaller.stop()
-    
+
     @pyqtSlot()
     def __openFile(self):
         """
@@ -507,11 +507,11 @@
             self,
             self.tr("Open HTML File"),
             "",
-            self.tr("HTML Files (*.htm *.html);;All Files (*)")
+            self.tr("HTML Files (*.htm *.html);;All Files (*)"),
         )
         if htmlFile:
             self.currentViewer().setLink(QUrl.fromLocalFile(htmlFile))
-    
+
     @pyqtSlot()
     def __addNewPage(self):
         """
@@ -520,11 +520,11 @@
         urlStr = self.__helpSelector.currentData()
         url = QUrl(urlStr) if bool(urlStr) else None
         self.addPage(url=url)
-    
+
     def addPage(self, url=None, background=False):
         """
         Public method to add a new help page with the given URL.
-        
+
         @param url requested URL (defaults to QUrl("about:blank"))
         @type QUrl (optional)
         @param background flag indicating to open the page in the background
@@ -535,30 +535,29 @@
         """
         if url is None:
             url = QUrl("about:blank")
-        
+
         viewer, viewerType = self.__newViewer()
         viewer.setLink(url)
-        
+
         cv = self.currentViewer()
         if background and bool(cv):
             index = self.__helpStack.indexOf(cv) + 1
             self.__helpStack.insertWidget(index, viewer)
-            self.__openPagesList.insertPage(
-                index, viewer, background=background)
+            self.__openPagesList.insertPage(index, viewer, background=background)
             cv.setFocus(Qt.FocusReason.OtherFocusReason)
         else:
             self.__helpStack.addWidget(viewer)
             self.__openPagesList.addPage(viewer, background=background)
             viewer.setFocus(Qt.FocusReason.OtherFocusReason)
             self.__searchWidget.attachTextEdit(viewer, editType=viewerType)
-        
+
         return viewer
-    
+
     @pyqtSlot(QUrl)
     def openUrl(self, url):
         """
         Public slot to load a URL in the current page.
-        
+
         @param url URL to be opened
         @type QUrl
         """
@@ -566,48 +565,48 @@
         if cv:
             cv.setLink(url)
             cv.setFocus(Qt.FocusReason.OtherFocusReason)
-    
+
     @pyqtSlot(QUrl)
     def openUrlNewPage(self, url):
         """
         Public slot to load a URL in a new page.
-        
+
         @param url URL to be opened
         @type QUrl
         """
         self.addPage(url=url)
-    
+
     @pyqtSlot(QUrl)
     def openUrlNewBackgroundPage(self, url):
         """
         Public slot to load a URL in a new background page.
-        
+
         @param url URL to be opened
         @type QUrl
         """
         self.addPage(url=url, background=True)
-    
+
     @pyqtSlot()
     def closeCurrentPage(self):
         """
         Public slot to close the current page.
         """
         self.__openPagesList.closeCurrentPage()
-    
+
     @pyqtSlot()
     def closeOtherPages(self):
         """
         Public slot to close all other pages.
         """
         self.__openPagesList.closeOtherPages()
-    
+
     @pyqtSlot()
     def closeAllPages(self):
         """
         Public slot to close all pages.
         """
         self.__openPagesList.closeAllPages()
-    
+
     @pyqtSlot()
     def __activateCurrentPage(self):
         """
@@ -616,71 +615,71 @@
         cv = self.currentViewer()
         if cv:
             cv.setFocus()
-    
+
     def __newViewer(self):
         """
         Private method to create a new help viewer.
-        
+
         @return tuple containing the reference to the created help viewer
             object and its type
         @rtype tuple of (HelpViewerImpl, EricTextEditType)
         """
         if WEBENGINE_AVAILABLE:
             from .HelpViewerImplQWE import HelpViewerImplQWE
+
             viewer = HelpViewerImplQWE(self.__helpEngine, self)
             viewerType = EricTextEditType.QWEBENGINEVIEW
         else:
             from .HelpViewerImplQTB import HelpViewerImplQTB
+
             viewer = HelpViewerImplQTB(self.__helpEngine, self)
             viewerType = EricTextEditType.QTEXTBROWSER
-        
+
         viewer.zoomChanged.connect(self.__checkActionButtons)
-        
+
         return viewer, viewerType
-    
+
     def currentViewer(self):
         """
         Public method to get the active viewer.
-        
+
         @return reference to the active help viewer
         @rtype HelpViewerImpl
         """
         return self.__helpStack.currentWidget()
-    
+
     def bookmarkPage(self, title, url):
         """
         Public method to bookmark a page with the given data.
-        
+
         @param title title of the page
         @type str
         @param url URL of the page
         @type QUrl
         """
         self.__bookmarksList.addBookmark(title, url)
-    
+
     #######################################################################
     ## QtHelp related code below
     #######################################################################
-    
+
     def __initHelpEngine(self):
         """
         Private method to initialize the QtHelp related stuff.
         """
-        self.__helpEngine = QHelpEngine(
-            self.__getQtHelpCollectionFileName(),
-            self)
+        self.__helpEngine = QHelpEngine(self.__getQtHelpCollectionFileName(), self)
         self.__helpEngine.setReadOnly(False)
         self.__helpEngine.setUsesFilterEngine(True)
-        
+
         self.__helpEngine.warning.connect(self.__warning)
-        
+
         self.__helpEngine.setupData()
         self.__removeOldDocumentation()
-    
+
     def __getQtHelpCollectionFileName(self):
         """
         Private method to determine the name of the QtHelp collection file.
-        
+
         @return path of the QtHelp collection file
         @rtype str
         """
@@ -688,19 +687,17 @@
         if not os.path.exists(qthelpDir):
             os.makedirs(qthelpDir)
         return os.path.join(qthelpDir, "eric7help.qhc")
-    
+
     @pyqtSlot(str)
     def __warning(self, msg):
         """
         Private slot handling warnings of the help engine.
-        
+
         @param msg message sent by the help  engine
         @type str
         """
-        EricMessageBox.warning(
-            self,
-            self.tr("Help Engine"), msg)
-    
+        EricMessageBox.warning(self, self.tr("Help Engine"), msg)
+
     @pyqtSlot()
     def __removeOldDocumentation(self):
         """
@@ -710,7 +707,7 @@
             docFile = self.__helpEngine.documentationFileName(namespace)
             if not os.path.exists(docFile):
                 self.__helpEngine.unregisterDocumentation(namespace)
-    
+
     @pyqtSlot()
     def __lookForNewDocumentation(self):
         """
@@ -718,87 +715,83 @@
         help database.
         """
         from WebBrowser.QtHelp.HelpDocsInstaller import HelpDocsInstaller
-        self.__helpInstaller = HelpDocsInstaller(
-            self.__helpEngine.collectionFile())
-        self.__helpInstaller.errorMessage.connect(
-            self.__showInstallationError)
+
+        self.__helpInstaller = HelpDocsInstaller(self.__helpEngine.collectionFile())
+        self.__helpInstaller.errorMessage.connect(self.__showInstallationError)
         self.__helpInstaller.docsInstalled.connect(self.__docsInstalled)
-        
-        self.__ui.statusBar().showMessage(
-            self.tr("Looking for Documentation..."))
+
+        self.__ui.statusBar().showMessage(self.tr("Looking for Documentation..."))
         self.__helpInstaller.installDocs()
-    
+
     @pyqtSlot(str)
     def __showInstallationError(self, message):
         """
         Private slot to show installation errors.
-        
+
         @param message message to be shown
         @type str
         """
-        EricMessageBox.warning(
-            self,
-            self.tr("eric Help Viewer"),
-            message)
-    
+        EricMessageBox.warning(self, self.tr("eric Help Viewer"), message)
+
     @pyqtSlot(bool)
     def __docsInstalled(self, installed):
         """
         Private slot handling the end of documentation installation.
-        
+
         @param installed flag indicating that documents were installed
         @type bool
         """
         self.__ui.statusBar().clearMessage()
         self.__helpEngine.setupData()
-    
+
     #######################################################################
     ## Actions Menu related methods
     #######################################################################
-    
+
     def __initActionsMenu(self):
         """
         Private method to initialize the actions menu.
         """
         self.__actionsMenu = QMenu()
         self.__actionsMenu.setToolTipsVisible(True)
-        
+
         self.__actionsMenu.addAction(
-            self.tr("Manage QtHelp Documents"),
-            self.__manageQtHelpDocuments)
+            self.tr("Manage QtHelp Documents"), self.__manageQtHelpDocuments
+        )
         self.__actionsMenu.addAction(
             self.tr("Reindex Documentation"),
-            self.__helpSearchEngine.reindexDocumentation)
+            self.__helpSearchEngine.reindexDocumentation,
+        )
         self.__actionsMenu.addSeparator()
         self.__actionsMenu.addAction(
-            self.tr("Configure Help Documentation"),
-            self.__configureHelpDocumentation)
-        
+            self.tr("Configure Help Documentation"), self.__configureHelpDocumentation
+        )
+
         self.__actionsButton.setMenu(self.__actionsMenu)
-    
+
     @pyqtSlot()
     def __manageQtHelpDocuments(self):
         """
         Private slot to manage the QtHelp documentation database.
         """
         from WebBrowser.QtHelp.QtHelpDocumentationConfigurationDialog import (
-            QtHelpDocumentationConfigurationDialog
+            QtHelpDocumentationConfigurationDialog,
         )
-        dlg = QtHelpDocumentationConfigurationDialog(
-            self.__helpEngine, self)
+
+        dlg = QtHelpDocumentationConfigurationDialog(self.__helpEngine, self)
         dlg.exec()
-    
+
     @pyqtSlot()
     def __configureHelpDocumentation(self):
         """
         Private slot to open the Help Documentation configuration page.
         """
         self.__ui.showPreferences("helpDocumentationPage")
-    
+
     #######################################################################
     ## Navigation related methods below
     #######################################################################
-    
+
     @pyqtSlot()
     def __backward(self):
         """
@@ -807,7 +800,7 @@
         cv = self.currentViewer()
         if cv:
             cv.backward()
-    
+
     @pyqtSlot()
     def __forward(self):
         """
@@ -816,7 +809,7 @@
         cv = self.currentViewer()
         if cv:
             cv.forward()
-    
+
     @pyqtSlot()
     def __reload(self):
         """
@@ -825,7 +818,7 @@
         cv = self.currentViewer()
         if cv:
             cv.reload()
-    
+
     def __showBackMenu(self):
         """
         Private slot showing the backward navigation menu.
@@ -833,19 +826,19 @@
         cv = self.currentViewer()
         if cv:
             self.__backMenu.clear()
-            backwardHistoryCount = min(cv.backwardHistoryCount(),
-                                       HelpViewerWidget.MaxHistoryItems)
-            
+            backwardHistoryCount = min(
+                cv.backwardHistoryCount(), HelpViewerWidget.MaxHistoryItems
+            )
+
             for index in range(1, backwardHistoryCount + 1):
                 act = QAction(self)
                 act.setData(-index)
                 act.setText(cv.historyTitle(-index))
                 self.__backMenu.addAction(act)
-            
+
             self.__backMenu.addSeparator()
-            self.__backMenu.addAction(self.tr("Clear History"),
-                                      self.__clearHistory)
-    
+            self.__backMenu.addAction(self.tr("Clear History"), self.__clearHistory)
+
     def __showForwardMenu(self):
         """
         Private slot showing the forward navigation menu.
@@ -853,23 +846,23 @@
         cv = self.currentViewer()
         if cv:
             self.__forwardMenu.clear()
-            forwardHistoryCount = min(cv.forwardHistoryCount(),
-                                      HelpViewerWidget.MaxHistoryItems)
-        
+            forwardHistoryCount = min(
+                cv.forwardHistoryCount(), HelpViewerWidget.MaxHistoryItems
+            )
+
             for index in range(1, forwardHistoryCount + 1):
                 act = QAction(self)
                 act.setData(index)
                 act.setText(cv.historyTitle(index))
                 self.__forwardMenu.addAction(act)
-            
+
             self.__forwardMenu.addSeparator()
-            self.__forwardMenu.addAction(self.tr("Clear History"),
-                                         self.__clearHistory)
-    
+            self.__forwardMenu.addAction(self.tr("Clear History"), self.__clearHistory)
+
     def __navigationMenuActionTriggered(self, act):
         """
         Private slot to go to the selected page.
-        
+
         @param act reference to the action selected in the navigation menu
         @type QAction
         """
@@ -878,7 +871,7 @@
             index = act.data()
             if index is not None:
                 cv.gotoHistory(index)
-    
+
     def __clearHistory(self):
         """
         Private slot to clear the history of the current viewer.
@@ -887,11 +880,11 @@
         if cv:
             cv.clearHistory()
             self.__checkActionButtons()
-    
+
     #######################################################################
     ## Page navigation related methods below
     #######################################################################
-    
+
     @pyqtSlot()
     def __checkActionButtons(self):
         """
@@ -908,7 +901,7 @@
             self.__forwardButton.setEnabled(False)
             self.__zoomInButton.setEnabled(False)
             self.__zoomOutButton.setEnabled(False)
-    
+
     @pyqtSlot()
     def __currentPageChanged(self):
         """
@@ -921,16 +914,16 @@
                 cv,
                 editType=(
                     EricTextEditType.QWEBENGINEVIEW
-                    if WEBENGINE_AVAILABLE else
-                    EricTextEditType.QTEXTBROWSER
-                )
+                    if WEBENGINE_AVAILABLE
+                    else EricTextEditType.QTEXTBROWSER
+                ),
             )
             cv.setFocus(Qt.FocusReason.OtherFocusReason)
-    
+
     #######################################################################
     ## Zoom related methods below
     #######################################################################
-    
+
     @pyqtSlot()
     def __zoomIn(self):
         """
@@ -939,7 +932,7 @@
         cv = self.currentViewer()
         if cv:
             cv.scaleUp()
-    
+
     @pyqtSlot()
     def __zoomOut(self):
         """
@@ -948,7 +941,7 @@
         cv = self.currentViewer()
         if cv:
             cv.scaleDown()
-    
+
     @pyqtSlot()
     def __zoomReset(self):
         """
@@ -957,34 +950,34 @@
         cv = self.currentViewer()
         if cv:
             cv.resetScale()
-    
+
     #######################################################################
     ## QtHelp Search related methods below
     #######################################################################
-    
+
     def __initIndexingProgress(self):
         """
         Private method to initialize the help documents indexing progress
         widget.
-        
+
         @return reference to the generated widget
         @rtype QWidget
         """
         progressWidget = QWidget(self)
         layout = QHBoxLayout(progressWidget)
         layout.setContentsMargins(0, 0, 0, 0)
-        
+
         label = QLabel(self.tr("Updating search index"))
         layout.addWidget(label)
-        
+
         progressBar = QProgressBar()
         progressBar.setRange(0, 0)
         progressBar.setTextVisible(False)
         progressBar.setFixedHeight(16)
         layout.addWidget(progressBar)
-        
+
         return progressWidget
-    
+
     @pyqtSlot()
     def __indexingStarted(self):
         """
@@ -992,7 +985,7 @@
         """
         self.__indexing = True
         self.__indexingProgressWidget.show()
-    
+
     @pyqtSlot()
     def __indexingFinished(self):
         """
@@ -1000,61 +993,60 @@
         """
         self.__indexingProgressWidget.hide()
         self.__indexing = False
-    
+
     @pyqtSlot(str)
     def searchQtHelp(self, searchExpression):
         """
         Public slot to search for a given search expression.
-        
+
         @param searchExpression expression to search for
         @type str
         """
         if searchExpression:
             if self.__indexing:
                 # Try again a second later
-                QTimer.singleShot(
-                    1000,
-                    lambda: self.searchQtHelp(searchExpression)
-                )
+                QTimer.singleShot(1000, lambda: self.searchQtHelp(searchExpression))
             else:
                 self.__helpSearchButton.setChecked(True)
                 self.__helpSearchEngine.search(searchExpression)
-    
+
     #######################################################################
     ## QtHelp filter related methods below
     #######################################################################
-    
+
     def __initFilterWidget(self):
         """
         Private method to initialize the filter selection widget.
-        
+
         @return reference to the generated widget
         @rtype QWidget
         """
         filterWidget = QWidget()
         layout = QHBoxLayout(filterWidget)
         layout.setContentsMargins(0, 0, 0, 0)
-        
+
         label = QLabel(self.tr("Filtered by: "))
         layout.addWidget(label)
-        
+
         self.__helpFilterCombo = QComboBox()
-        comboWidth = QFontMetrics(QFont()).horizontalAdvance(
-            "ComboBoxWithEnoughWidth")
+        comboWidth = QFontMetrics(QFont()).horizontalAdvance("ComboBoxWithEnoughWidth")
         self.__helpFilterCombo.setMinimumWidth(comboWidth)
         layout.addWidget(self.__helpFilterCombo)
-        
+
         self.__helpEngine.setupFinished.connect(
-            self.__setupFilterCombo, Qt.ConnectionType.QueuedConnection)
+            self.__setupFilterCombo, Qt.ConnectionType.QueuedConnection
+        )
         self.__helpFilterCombo.currentIndexChanged.connect(
-            self.__filterQtHelpDocumentation)
+            self.__filterQtHelpDocumentation
+        )
         self.__helpEngine.filterEngine().filterActivated.connect(
-            self.__currentFilterChanged)
-        
+            self.__currentFilterChanged
+        )
+
         self.__setupFilterCombo()
-        
+
         return filterWidget
-    
+
     @pyqtSlot()
     def __setupFilterCombo(self):
         """
@@ -1066,7 +1058,7 @@
         if not activeFilter:
             activeFilter = self.tr("Unfiltered")
         allFilters = self.__helpEngine.filterEngine().filters()
-        
+
         blocked = self.__helpFilterCombo.blockSignals(True)
         self.__helpFilterCombo.clear()
         self.__helpFilterCombo.addItem(self.tr("Unfiltered"))
@@ -1075,26 +1067,26 @@
             for helpFilter in sorted(allFilters):
                 self.__helpFilterCombo.addItem(helpFilter, helpFilter)
         self.__helpFilterCombo.blockSignals(blocked)
-        
+
         self.__helpFilterCombo.setCurrentText(activeFilter)
-    
+
     @pyqtSlot(int)
     def __filterQtHelpDocumentation(self, index):
         """
         Private slot to filter the QtHelp documentation.
-        
+
         @param index index of the selected QtHelp documentation filter
         @type int
         """
         if self.__helpEngine:
             helpFilter = self.__helpFilterCombo.itemData(index)
             self.__helpEngine.filterEngine().setActiveFilter(helpFilter)
-    
+
     @pyqtSlot(str)
     def __currentFilterChanged(self, filter_):
         """
         Private slot handling a change of the active QtHelp filter.
-        
+
         @param filter_ filter name
         @type str
         """
@@ -1102,191 +1094,215 @@
         if index < 0:
             index = 0
         self.__helpFilterCombo.setCurrentIndex(index)
-    
+
     #######################################################################
     ## QWebEngine related code below
     #######################################################################
-    
+
     def __initQWebEngine(self):
         """
         Private method to initialize global QWebEngine related objects.
         """
         self.__webProfile = QWebEngineProfile.defaultProfile()
         self.__webProfile.setHttpCacheType(
-            QWebEngineProfile.HttpCacheType.MemoryHttpCache)
+            QWebEngineProfile.HttpCacheType.MemoryHttpCache
+        )
         self.__webProfile.setHttpCacheMaximumSize(0)
-        
+
         self.__initQWebEngineSettings()
-        
+
         from WebBrowser.Network.QtHelpSchemeHandler import QtHelpSchemeHandler
+
         self.__qtHelpSchemeHandler = QtHelpSchemeHandler(self.__helpEngine)
         self.__webProfile.installUrlSchemeHandler(
-            QByteArray(b"qthelp"), self.__qtHelpSchemeHandler)
-    
+            QByteArray(b"qthelp"), self.__qtHelpSchemeHandler
+        )
+
     def webProfile(self):
         """
         Public method to get a reference to the global web profile object.
-        
+
         @return reference to the global web profile object
         @rtype QWebEngineProfile
         """
         return self.__webProfile
-    
+
     def webSettings(self):
         """
         Public method to get the web settings of the current profile.
-        
+
         @return web settings of the current profile
         @rtype QWebEngineSettings
         """
         return self.webProfile().settings()
-    
+
     def __initQWebEngineSettings(self):
         """
         Private method to set the global web settings.
         """
         settings = self.webSettings()
-        
+
         settings.setFontFamily(
             QWebEngineSettings.FontFamily.StandardFont,
-            Preferences.getWebBrowser("StandardFontFamily"))
+            Preferences.getWebBrowser("StandardFontFamily"),
+        )
         settings.setFontFamily(
             QWebEngineSettings.FontFamily.FixedFont,
-            Preferences.getWebBrowser("FixedFontFamily"))
+            Preferences.getWebBrowser("FixedFontFamily"),
+        )
         settings.setFontFamily(
             QWebEngineSettings.FontFamily.SerifFont,
-            Preferences.getWebBrowser("SerifFontFamily"))
+            Preferences.getWebBrowser("SerifFontFamily"),
+        )
         settings.setFontFamily(
             QWebEngineSettings.FontFamily.SansSerifFont,
-            Preferences.getWebBrowser("SansSerifFontFamily"))
+            Preferences.getWebBrowser("SansSerifFontFamily"),
+        )
         settings.setFontFamily(
             QWebEngineSettings.FontFamily.CursiveFont,
-            Preferences.getWebBrowser("CursiveFontFamily"))
+            Preferences.getWebBrowser("CursiveFontFamily"),
+        )
         settings.setFontFamily(
             QWebEngineSettings.FontFamily.FantasyFont,
-            Preferences.getWebBrowser("FantasyFontFamily"))
-        
+            Preferences.getWebBrowser("FantasyFontFamily"),
+        )
+
         settings.setFontSize(
             QWebEngineSettings.FontSize.DefaultFontSize,
-            Preferences.getWebBrowser("DefaultFontSize"))
+            Preferences.getWebBrowser("DefaultFontSize"),
+        )
         settings.setFontSize(
             QWebEngineSettings.FontSize.DefaultFixedFontSize,
-            Preferences.getWebBrowser("DefaultFixedFontSize"))
+            Preferences.getWebBrowser("DefaultFixedFontSize"),
+        )
         settings.setFontSize(
             QWebEngineSettings.FontSize.MinimumFontSize,
-            Preferences.getWebBrowser("MinimumFontSize"))
+            Preferences.getWebBrowser("MinimumFontSize"),
+        )
         settings.setFontSize(
             QWebEngineSettings.FontSize.MinimumLogicalFontSize,
-            Preferences.getWebBrowser("MinimumLogicalFontSize"))
-        
+            Preferences.getWebBrowser("MinimumLogicalFontSize"),
+        )
+
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.AutoLoadImages,
-            Preferences.getWebBrowser("AutoLoadImages"))
-        settings.setAttribute(
-            QWebEngineSettings.WebAttribute.JavascriptEnabled,
-            True)
+            Preferences.getWebBrowser("AutoLoadImages"),
+        )
+        settings.setAttribute(QWebEngineSettings.WebAttribute.JavascriptEnabled, True)
         # JavaScript is needed for the web browser functionality
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.JavascriptCanOpenWindows,
-            Preferences.getWebBrowser("JavaScriptCanOpenWindows"))
+            Preferences.getWebBrowser("JavaScriptCanOpenWindows"),
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.JavascriptCanAccessClipboard,
-            Preferences.getWebBrowser("JavaScriptCanAccessClipboard"))
-        settings.setAttribute(
-            QWebEngineSettings.WebAttribute.PluginsEnabled,
-            False)
-        
+            Preferences.getWebBrowser("JavaScriptCanAccessClipboard"),
+        )
+        settings.setAttribute(QWebEngineSettings.WebAttribute.PluginsEnabled, False)
+
         settings.setAttribute(
-            QWebEngineSettings.WebAttribute.LocalStorageEnabled,
-            False)
+            QWebEngineSettings.WebAttribute.LocalStorageEnabled, False
+        )
         settings.setDefaultTextEncoding(
-            Preferences.getWebBrowser("DefaultTextEncoding"))
-        
+            Preferences.getWebBrowser("DefaultTextEncoding")
+        )
+
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.SpatialNavigationEnabled,
-            Preferences.getWebBrowser("SpatialNavigationEnabled"))
+            Preferences.getWebBrowser("SpatialNavigationEnabled"),
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.LinksIncludedInFocusChain,
-            Preferences.getWebBrowser("LinksIncludedInFocusChain"))
+            Preferences.getWebBrowser("LinksIncludedInFocusChain"),
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.LocalContentCanAccessRemoteUrls,
-            Preferences.getWebBrowser("LocalContentCanAccessRemoteUrls"))
+            Preferences.getWebBrowser("LocalContentCanAccessRemoteUrls"),
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.LocalContentCanAccessFileUrls,
-            Preferences.getWebBrowser("LocalContentCanAccessFileUrls"))
+            Preferences.getWebBrowser("LocalContentCanAccessFileUrls"),
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.XSSAuditingEnabled,
-            Preferences.getWebBrowser("XSSAuditingEnabled"))
+            Preferences.getWebBrowser("XSSAuditingEnabled"),
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.ScrollAnimatorEnabled,
-            Preferences.getWebBrowser("ScrollAnimatorEnabled"))
+            Preferences.getWebBrowser("ScrollAnimatorEnabled"),
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.ErrorPageEnabled,
-            Preferences.getWebBrowser("ErrorPageEnabled"))
+            Preferences.getWebBrowser("ErrorPageEnabled"),
+        )
         settings.setAttribute(
-            QWebEngineSettings.WebAttribute.FullScreenSupportEnabled,
-            False)
+            QWebEngineSettings.WebAttribute.FullScreenSupportEnabled, False
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.ScreenCaptureEnabled,
-            Preferences.getWebBrowser("ScreenCaptureEnabled"))
+            Preferences.getWebBrowser("ScreenCaptureEnabled"),
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.WebGLEnabled,
-            Preferences.getWebBrowser("WebGLEnabled"))
+            Preferences.getWebBrowser("WebGLEnabled"),
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.FocusOnNavigationEnabled,
-            Preferences.getWebBrowser("FocusOnNavigationEnabled"))
+            Preferences.getWebBrowser("FocusOnNavigationEnabled"),
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.PrintElementBackgrounds,
-            Preferences.getWebBrowser("PrintElementBackgrounds"))
+            Preferences.getWebBrowser("PrintElementBackgrounds"),
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.AllowRunningInsecureContent,
-            Preferences.getWebBrowser("AllowRunningInsecureContent"))
+            Preferences.getWebBrowser("AllowRunningInsecureContent"),
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.AllowGeolocationOnInsecureOrigins,
-            Preferences.getWebBrowser("AllowGeolocationOnInsecureOrigins"))
+            Preferences.getWebBrowser("AllowGeolocationOnInsecureOrigins"),
+        )
         settings.setAttribute(
-            QWebEngineSettings.WebAttribute
-            .AllowWindowActivationFromJavaScript,
-            Preferences.getWebBrowser(
-                "AllowWindowActivationFromJavaScript"))
+            QWebEngineSettings.WebAttribute.AllowWindowActivationFromJavaScript,
+            Preferences.getWebBrowser("AllowWindowActivationFromJavaScript"),
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.ShowScrollBars,
-            Preferences.getWebBrowser("ShowScrollBars"))
+            Preferences.getWebBrowser("ShowScrollBars"),
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.PlaybackRequiresUserGesture,
-            Preferences.getWebBrowser(
-                "PlaybackRequiresUserGesture"))
+            Preferences.getWebBrowser("PlaybackRequiresUserGesture"),
+        )
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.JavascriptCanPaste,
-            Preferences.getWebBrowser(
-                "JavaScriptCanPaste"))
+            Preferences.getWebBrowser("JavaScriptCanPaste"),
+        )
         settings.setAttribute(
-            QWebEngineSettings.WebAttribute.WebRTCPublicInterfacesOnly,
-            False)
-        settings.setAttribute(
-            QWebEngineSettings.WebAttribute.DnsPrefetchEnabled,
-            False)
+            QWebEngineSettings.WebAttribute.WebRTCPublicInterfacesOnly, False
+        )
+        settings.setAttribute(QWebEngineSettings.WebAttribute.DnsPrefetchEnabled, False)
         settings.setAttribute(
             QWebEngineSettings.WebAttribute.PdfViewerEnabled,
-            Preferences.getWebBrowser(
-                "PdfViewerEnabled"))
-    
+            Preferences.getWebBrowser("PdfViewerEnabled"),
+        )
+
     #######################################################################
     ## Search widget related methods below
     #######################################################################
-    
+
     @pyqtSlot()
     def __searchWidgetClosed(self):
         """
         Private slot to handle the closing of the search widget.
         """
         self.__searchButton.setChecked(False)
-    
+
     @pyqtSlot(bool)
     def showHideSearch(self, visible):
         """
         Public slot to show or hide the search widget.
-        
+
         @param visible flag indicating to show or hide the search widget
         @type bool
         """
@@ -1295,39 +1311,39 @@
             self.__searchWidget.activate()
         else:
             self.__searchWidget.deactivate()
-    
+
     @pyqtSlot()
     def searchPrev(self):
         """
         Public slot to find the previous occurrence of the current search term.
         """
         self.__searchWidget.findPrev()
-    
+
     @pyqtSlot()
     def searchNext(self):
         """
         Public slot to find the next occurrence of the current search term.
         """
         self.__searchWidget.findNext()
-    
+
     #######################################################################
     ## Utility methods below
     #######################################################################
-    
+
     def openPagesCount(self):
         """
         Public method to get the count of open pages.
-        
+
         @return count of open pages
         @rtype int
         """
         return self.__helpStack.count()
-    
+
     @classmethod
     def emptyDocument(cls):
         """
         Class method to get the HTML code for an empty page.
-        
+
         @return HTML code for an empty page.
         @rtype str
         """

eric ide

mercurial