eric6/WebBrowser/WebBrowserView.py

branch
maintenance
changeset 8176
31965986ecd1
parent 8043
0acf98cd089a
parent 8143
2c730d5fd177
child 8273
698ae46f40a4
--- a/eric6/WebBrowser/WebBrowserView.py	Sat Mar 06 10:00:52 2021 +0100
+++ b/eric6/WebBrowser/WebBrowserView.py	Sun Mar 28 15:00:11 2021 +0200
@@ -137,7 +137,7 @@
         if self.parentWidget() is not None:
             self.parentWidget().installEventFilter(self)
         
-        self.grabGesture(Qt.PinchGesture)
+        self.grabGesture(Qt.GestureType.PinchGesture)
     
     def __createNewPage(self):
         """
@@ -176,10 +176,10 @@
         """
         Private slot to set widget that receives input events.
         """
-        self.grabGesture(Qt.PinchGesture)
+        self.grabGesture(Qt.GestureType.PinchGesture)
         self.__rwhvqt = self.focusProxy()
         if self.__rwhvqt:
-            self.__rwhvqt.grabGesture(Qt.PinchGesture)
+            self.__rwhvqt.grabGesture(Qt.GestureType.PinchGesture)
             self.__rwhvqt.installEventFilter(self)
         else:
             print("Focus proxy is null!")   # __IGNORE_WARNING_M801__
@@ -220,7 +220,7 @@
         if (
             self.__page is not None and
             not self.__page.acceptNavigationRequest(
-                url, QWebEnginePage.NavigationTypeTyped, True)
+                url, QWebEnginePage.NavigationType.NavigationTypeTyped, True)
         ):
             return
         
@@ -330,14 +330,14 @@
         """
         Public slot to move backwards in history.
         """
-        self.triggerPageAction(QWebEnginePage.Back)
+        self.triggerPageAction(QWebEnginePage.WebAction.Back)
         self.__urlChanged(self.history().currentItem().url())
     
     def forward(self):
         """
         Public slot to move forward in history.
         """
-        self.triggerPageAction(QWebEnginePage.Forward)
+        self.triggerPageAction(QWebEnginePage.WebAction.Forward)
         self.__urlChanged(self.history().currentItem().url())
     
     def home(self):
@@ -352,56 +352,56 @@
         """
         Public slot to reload the current page.
         """
-        self.triggerPageAction(QWebEnginePage.Reload)
+        self.triggerPageAction(QWebEnginePage.WebAction.Reload)
     
     def reloadBypassingCache(self):
         """
         Public slot to reload the current page bypassing the cache.
         """
-        self.triggerPageAction(QWebEnginePage.ReloadAndBypassCache)
+        self.triggerPageAction(QWebEnginePage.WebAction.ReloadAndBypassCache)
     
     def copy(self):
         """
         Public slot to copy the selected text.
         """
-        self.triggerPageAction(QWebEnginePage.Copy)
+        self.triggerPageAction(QWebEnginePage.WebAction.Copy)
     
     def cut(self):
         """
         Public slot to cut the selected text.
         """
-        self.triggerPageAction(QWebEnginePage.Cut)
+        self.triggerPageAction(QWebEnginePage.WebAction.Cut)
     
     def paste(self):
         """
         Public slot to paste text from the clipboard.
         """
-        self.triggerPageAction(QWebEnginePage.Paste)
+        self.triggerPageAction(QWebEnginePage.WebAction.Paste)
     
     def undo(self):
         """
         Public slot to undo the last edit action.
         """
-        self.triggerPageAction(QWebEnginePage.Undo)
+        self.triggerPageAction(QWebEnginePage.WebAction.Undo)
     
     def redo(self):
         """
         Public slot to redo the last edit action.
         """
-        self.triggerPageAction(QWebEnginePage.Redo)
+        self.triggerPageAction(QWebEnginePage.WebAction.Redo)
     
     def selectAll(self):
         """
         Public slot to select all text.
         """
-        self.triggerPageAction(QWebEnginePage.SelectAll)
+        self.triggerPageAction(QWebEnginePage.WebAction.SelectAll)
     
     def unselect(self):
         """
         Public slot to clear the current selection.
         """
         try:
-            self.triggerPageAction(QWebEnginePage.Unselect)
+            self.triggerPageAction(QWebEnginePage.WebAction.Unselect)
         except AttributeError:
             # prior to 5.7.0
             self.page().runJavaScript(
@@ -519,9 +519,9 @@
         """
         findFlags = QWebEnginePage.FindFlags()
         if case:
-            findFlags |= QWebEnginePage.FindCaseSensitively
+            findFlags |= QWebEnginePage.FindFlag.FindCaseSensitively
         if backwards:
-            findFlags |= QWebEnginePage.FindBackward
+            findFlags |= QWebEnginePage.FindFlag.FindBackward
         
         if callback is None:
             self.findText(txt, findFlags)
@@ -1176,19 +1176,19 @@
         """
         Private slot to download a link and save it to disk.
         """
-        self.triggerPageAction(QWebEnginePage.DownloadLinkToDisk)
+        self.triggerPageAction(QWebEnginePage.WebAction.DownloadLinkToDisk)
     
     def __downloadImage(self):
         """
         Private slot to download an image and save it to disk.
         """
-        self.triggerPageAction(QWebEnginePage.DownloadImageToDisk)
+        self.triggerPageAction(QWebEnginePage.WebAction.DownloadImageToDisk)
     
     def __copyImage(self):
         """
         Private slot to copy an image to the clipboard.
         """
-        self.triggerPageAction(QWebEnginePage.CopyImageToClipboard)
+        self.triggerPageAction(QWebEnginePage.WebAction.CopyImageToClipboard)
     
     def __blockImage(self, act):
         """
@@ -1215,19 +1215,19 @@
         """
         Private slot to download a media and save it to disk.
         """
-        self.triggerPageAction(QWebEnginePage.DownloadMediaToDisk)
+        self.triggerPageAction(QWebEnginePage.WebAction.DownloadMediaToDisk)
     
     def __pauseMedia(self):
         """
         Private slot to pause or play the selected media.
         """
-        self.triggerPageAction(QWebEnginePage.ToggleMediaPlayPause)
+        self.triggerPageAction(QWebEnginePage.WebAction.ToggleMediaPlayPause)
     
     def __muteMedia(self):
         """
         Private slot to (un)mute the selected media.
         """
-        self.triggerPageAction(QWebEnginePage.ToggleMediaMute)
+        self.triggerPageAction(QWebEnginePage.WebAction.ToggleMediaMute)
     
     def __virusTotal(self, act):
         """
@@ -1374,7 +1374,7 @@
         if (
             not evt.isAccepted() and
             evt.source() != self and
-            evt.possibleActions() & Qt.CopyAction
+            evt.possibleActions() & Qt.DropAction.CopyAction
         ):
             url = QUrl()
             if len(evt.mimeData().urls()) > 0:
@@ -1398,11 +1398,11 @@
         self.__mw.setEventMouseButtons(evt.buttons())
         self.__mw.setEventKeyboardModifiers(evt.modifiers())
         
-        if evt.button() == Qt.XButton1:
-            self.pageAction(QWebEnginePage.Back).trigger()
+        if evt.button() == Qt.MouseButton.XButton1:
+            self.pageAction(QWebEnginePage.WebAction.Back).trigger()
             evt.accept()
-        elif evt.button() == Qt.XButton2:
-            self.pageAction(QWebEnginePage.Forward).trigger()
+        elif evt.button() == Qt.MouseButton.XButton2:
+            self.pageAction(QWebEnginePage.WebAction.Forward).trigger()
             evt.accept()
     
     def _mouseReleaseEvent(self, evt):
@@ -1419,16 +1419,18 @@
         self.__page.event(evt)
         if (
             not evt.isAccepted() and
-            self.__mw.eventMouseButtons() & Qt.MidButton
+            self.__mw.eventMouseButtons() & Qt.MouseButton.MidButton
         ):
-            url = QUrl(QApplication.clipboard().text(QClipboard.Selection))
+            url = QUrl(QApplication.clipboard().text(
+                QClipboard.Mode.Selection))
             if (
                 not url.isEmpty() and
                 url.isValid() and
                 url.scheme() != ""
             ):
-                self.__mw.setEventMouseButtons(Qt.NoButton)
-                self.__mw.setEventKeyboardModifiers(Qt.NoModifier)
+                self.__mw.setEventMouseButtons(Qt.MouseButton.NoButton)
+                self.__mw.setEventKeyboardModifiers(
+                    Qt.KeyboardModifier.NoModifier)
                 self.setSource(url)
         evt.setAccepted(accepted)
     
@@ -1459,14 +1461,14 @@
             return
         
         delta = evt.angleDelta().y()
-        if evt.modifiers() & Qt.ControlModifier:
+        if evt.modifiers() & Qt.KeyboardModifier.ControlModifier:
             if delta < 0:
                 self.zoomOut()
             elif delta > 0:
                 self.zoomIn()
             evt.accept()
         
-        elif evt.modifiers() & Qt.ShiftModifier:
+        elif evt.modifiers() & Qt.KeyboardModifier.ShiftModifier:
             if delta < 0:
                 self.backward()
             elif delta > 0:
@@ -1483,34 +1485,34 @@
             evt.accept()
             return
         
-        if evt.key() == Qt.Key_ZoomIn:
+        if evt.key() == Qt.Key.Key_ZoomIn:
             self.zoomIn()
             evt.accept()
-        elif evt.key() == Qt.Key_ZoomOut:
+        elif evt.key() == Qt.Key.Key_ZoomOut:
             self.zoomOut()
             evt.accept()
-        elif evt.key() == Qt.Key_Plus:
-            if evt.modifiers() & Qt.ControlModifier:
+        elif evt.key() == Qt.Key.Key_Plus:
+            if evt.modifiers() & Qt.KeyboardModifier.ControlModifier:
                 self.zoomIn()
                 evt.accept()
-        elif evt.key() == Qt.Key_Minus:
-            if evt.modifiers() & Qt.ControlModifier:
+        elif evt.key() == Qt.Key.Key_Minus:
+            if evt.modifiers() & Qt.KeyboardModifier.ControlModifier:
                 self.zoomOut()
                 evt.accept()
-        elif evt.key() == Qt.Key_0:
-            if evt.modifiers() & Qt.ControlModifier:
+        elif evt.key() == Qt.Key.Key_0:
+            if evt.modifiers() & Qt.KeyboardModifier.ControlModifier:
                 self.zoomReset()
                 evt.accept()
-        elif evt.key() == Qt.Key_M:
-            if evt.modifiers() & Qt.ControlModifier:
+        elif evt.key() == Qt.Key.Key_M:
+            if evt.modifiers() & Qt.KeyboardModifier.ControlModifier:
                 self.__muteMedia()
                 evt.accept()
-        elif evt.key() == Qt.Key_Backspace:
+        elif evt.key() == Qt.Key.Key_Backspace:
             pos = QCursor.pos()
             pos = self.mapFromGlobal(pos)
             hitTest = self.page().hitTestContent(pos)
             if not hitTest.isContentEditable():
-                self.pageAction(QWebEnginePage.Back).trigger()
+                self.pageAction(QWebEnginePage.WebAction.Back).trigger()
                 evt.accept()
     
     def _keyReleaseEvent(self, evt):
@@ -1519,9 +1521,9 @@
         
         @param evt reference to the key event (QKeyEvent)
         """
-        if evt.key() == Qt.Key_Escape:
+        if evt.key() == Qt.Key.Key_Escape:
             if self.isFullScreen():
-                self.triggerPageAction(QWebEnginePage.ExitFullScreen)
+                self.triggerPageAction(QWebEnginePage.WebAction.ExitFullScreen)
                 evt.accept()
                 self.requestFullScreen(False)
     
@@ -1531,11 +1533,11 @@
         
         @param evt reference to the gesture event (QGestureEvent
         """
-        pinch = evt.gesture(Qt.PinchGesture)
+        pinch = evt.gesture(Qt.GestureType.PinchGesture)
         if pinch:
-            if pinch.state() == Qt.GestureStarted:
+            if pinch.state() == Qt.GestureState.GestureStarted:
                 pinch.setTotalScaleFactor(self.__currentZoom / 100.0)
-            elif pinch.state() == Qt.GestureUpdated:
+            elif pinch.state() == Qt.GestureState.GestureUpdated:
                 scaleFactor = pinch.totalScaleFactor()
                 self.setZoomValue(int(scaleFactor * 100))
             evt.accept()
@@ -1553,37 +1555,41 @@
         """
         if (
             obj is self and
-            evt.type() == QEvent.ParentChange and
+            evt.type() == QEvent.Type.ParentChange and
             self.parentWidget() is not None
         ):
             self.parentWidget().installEventFilter(self)
         
         # find the render widget receiving events for the web page
-        if obj is self and evt.type() == QEvent.ChildAdded:
+        if obj is self and evt.type() == QEvent.Type.ChildAdded:
             QTimer.singleShot(0, self.__setRwhvqt)
         
         # forward events to WebBrowserView
         if (
             obj is self.__rwhvqt and
-            evt.type() in [QEvent.KeyPress, QEvent.KeyRelease,
-                           QEvent.MouseButtonPress, QEvent.MouseButtonRelease,
-                           QEvent.MouseMove, QEvent.Wheel, QEvent.Gesture]
+            evt.type() in [QEvent.Type.KeyPress,
+                           QEvent.Type.KeyRelease,
+                           QEvent.Type.MouseButtonPress,
+                           QEvent.Type.MouseButtonRelease,
+                           QEvent.Type.MouseMove,
+                           QEvent.Type.Wheel,
+                           QEvent.Type.Gesture]
         ):
             wasAccepted = evt.isAccepted()
             evt.setAccepted(False)
-            if evt.type() == QEvent.KeyPress:
+            if evt.type() == QEvent.Type.KeyPress:
                 self._keyPressEvent(evt)
-            elif evt.type() == QEvent.KeyRelease:
+            elif evt.type() == QEvent.Type.KeyRelease:
                 self._keyReleaseEvent(evt)
-            elif evt.type() == QEvent.MouseButtonPress:
+            elif evt.type() == QEvent.Type.MouseButtonPress:
                 self._mousePressEvent(evt)
-            elif evt.type() == QEvent.MouseButtonRelease:
+            elif evt.type() == QEvent.Type.MouseButtonRelease:
                 self._mouseReleaseEvent(evt)
-            elif evt.type() == QEvent.MouseMove:
+            elif evt.type() == QEvent.Type.MouseMove:
                 self._mouseMoveEvent(evt)
-            elif evt.type() == QEvent.Wheel:
+            elif evt.type() == QEvent.Type.Wheel:
                 self._wheelEvent(evt)
-            elif evt.type() == QEvent.Gesture:
+            elif evt.type() == QEvent.Type.Gesture:
                 self._gestureEvent(evt)
             ret = evt.isAccepted()
             evt.setAccepted(wasAccepted)
@@ -1591,13 +1597,13 @@
         
         if (
             obj is self.parentWidget() and
-            evt.type() in [QEvent.KeyPress, QEvent.KeyRelease]
+            evt.type() in [QEvent.Type.KeyPress, QEvent.Type.KeyRelease]
         ):
             wasAccepted = evt.isAccepted()
             evt.setAccepted(False)
-            if evt.type() == QEvent.KeyPress:
+            if evt.type() == QEvent.Type.KeyPress:
                 self._keyPressEvent(evt)
-            elif evt.type() == QEvent.KeyRelease:
+            elif evt.type() == QEvent.Type.KeyRelease:
                 self._keyReleaseEvent(evt)
             ret = evt.isAccepted()
             evt.setAccepted(wasAccepted)
@@ -1605,15 +1611,19 @@
         
         # block already handled events
         if obj is self:
-            if evt.type() in [QEvent.KeyPress, QEvent.KeyRelease,
-                              QEvent.MouseButtonPress,
-                              QEvent.MouseButtonRelease,
-                              QEvent.MouseMove, QEvent.Wheel, QEvent.Gesture]:
+            if evt.type() in [QEvent.Type.KeyPress,
+                              QEvent.Type.KeyRelease,
+                              QEvent.Type.MouseButtonPress,
+                              QEvent.Type.MouseButtonRelease,
+                              QEvent.Type.MouseMove,
+                              QEvent.Type.Wheel,
+                              QEvent.Type.Gesture]:
                 return True
             
-            elif evt.type() == QEvent.Hide:
+            elif evt.type() == QEvent.Type.Hide:
                 if self.isFullScreen():
-                    self.triggerPageAction(QWebEnginePage.ExitFullScreen)
+                    self.triggerPageAction(
+                        QWebEnginePage.WebAction.ExitFullScreen)
         
         return super(WebBrowserView, self).eventFilter(obj, evt)
     
@@ -1624,7 +1634,7 @@
         @param evt reference to the event (QEvent)
         @return flag indicating, if the event was handled (boolean)
         """
-        if evt.type() == QEvent.Gesture:
+        if evt.type() == QEvent.Type.Gesture:
             self._gestureEvent(evt)
             return True
         
@@ -1725,7 +1735,8 @@
             
             titleStr = url.host()
             if not titleStr:
-                titleStr = url.toString(QUrl.RemoveFragment)
+                titleStr = url.toString(
+                    QUrl.UrlFormattingOption.RemoveFragment)
             
         if not titleStr or titleStr == "about:blank":
             titleStr = self.tr("Empty Page")
@@ -1753,7 +1764,11 @@
         @param exitCode exit code of the process
         @type int
         """
-        if status == QWebEnginePage.NormalTerminationStatus:
+        if (
+            status ==
+            QWebEnginePage.RenderProcessTerminationStatus
+            .NormalTerminationStatus
+        ):
             return
         
         QTimer.singleShot(0, lambda: self.__showTabCrashPage(status))
@@ -1770,19 +1785,29 @@
         
         html = getHtmlPage("tabCrashPage.html")
         html = html.replace("@IMAGE@", pixmapToDataUrl(
-            e5App().style().standardIcon(QStyle.SP_MessageBoxWarning).pixmap(
-                48, 48)).toString())
+            e5App().style().standardIcon(
+                QStyle.StandardPixmap.SP_MessageBoxWarning).pixmap(48, 48)
+        ).toString())
         html = html.replace("@FAVICON@", pixmapToDataUrl(
-            e5App().style() .standardIcon(QStyle.SP_MessageBoxWarning).pixmap(
-                16, 16)).toString())
+            e5App().style() .standardIcon(
+                QStyle.StandardPixmap.SP_MessageBoxWarning).pixmap(16, 16)
+        ).toString())
         html = html.replace(
             "@TITLE@", self.tr("Render Process terminated abnormally"))
         html = html.replace(
             "@H1@", self.tr("Render Process terminated abnormally"))
-        if status == QWebEnginePage.CrashedTerminationStatus:
+        if (
+            status ==
+            QWebEnginePage.RenderProcessTerminationStatus
+            .CrashedTerminationStatus
+        ):
             msg = self.tr("The render process crashed while"
                           " loading this page.")
-        elif status == QWebEnginePage.KilledTerminationStatus:
+        elif (
+            status ==
+            QWebEnginePage.RenderProcessTerminationStatus
+            .KilledTerminationStatus
+        ):
             msg = self.tr("The render process was killed.")
         else:
             msg = self.tr("The render process terminated while"
@@ -1909,7 +1934,7 @@
         @rtype tuple of (str, QWebEngineDownloadItem.SavePageFormat)
         """
         documentLocation = QStandardPaths.writableLocation(
-            QStandardPaths.DocumentsLocation)
+            QStandardPaths.StandardLocation.DocumentsLocation)
         filterList = [
             self.tr("Web Archive (*.mhtml *.mht)"),
             self.tr("HTML File (*.html *.htm)"),
@@ -1934,7 +1959,7 @@
                 defaultFileName += ".mhtml"
 
         fileName = ""
-        saveFormat = QWebEngineDownloadItem.MimeHtmlSaveFormat
+        saveFormat = QWebEngineDownloadItem.SavePageFormat.MimeHtmlSaveFormat
         
         fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
             None,
@@ -1945,11 +1970,18 @@
         if fileName:
             index = filterList.index(selectedFilter)
             if index == 0:
-                saveFormat = QWebEngineDownloadItem.MimeHtmlSaveFormat
+                saveFormat = (
+                    QWebEngineDownloadItem.SavePageFormat.MimeHtmlSaveFormat
+                )
             elif index == 1:
-                saveFormat = QWebEngineDownloadItem.SingleHtmlSaveFormat
+                saveFormat = (
+                    QWebEngineDownloadItem.SavePageFormat.SingleHtmlSaveFormat
+                )
             else:
-                saveFormat = QWebEngineDownloadItem.CompleteHtmlSaveFormat
+                saveFormat = (
+                    QWebEngineDownloadItem.SavePageFormat
+                    .CompleteHtmlSaveFormat
+                )
             
             extension = os.path.splitext(fileName)[1]
             if not extension:
@@ -1975,10 +2007,10 @@
             (QWebEnginePage.WebWindowType)
         @return reference to the created browser window (WebBrowserView)
         """
-        if windowType in [QWebEnginePage.WebBrowserTab,
-                          QWebEnginePage.WebDialog]:
+        if windowType in [QWebEnginePage.WebWindowType.WebBrowserTab,
+                          QWebEnginePage.WebWindowType.WebDialog]:
             return self.__mw.newTab(addNextTo=self)
-        elif windowType == QWebEnginePage.WebBrowserWindow:
+        elif windowType == QWebEnginePage.WebWindowType.WebBrowserWindow:
             return self.__mw.newWindow().currentBrowser()
         else:
             return self.__mw.newTab(addNextTo=self, background=True)
@@ -2147,10 +2179,10 @@
         
         # 3. page history
         historyArray = QByteArray()
-        stream = QDataStream(historyArray, QIODevice.WriteOnly)
+        stream = QDataStream(historyArray, QIODevice.OpenModeFlag.WriteOnly)
         stream << page.history()
         sessionData["History"] = str(
-            historyArray.toBase64(QByteArray.Base64UrlEncoding),
+            historyArray.toBase64(QByteArray.Base64Option.Base64UrlEncoding),
             encoding="ascii")
         sessionData["HistoryIndex"] = page.history().currentItemIndex()
         
@@ -2160,7 +2192,7 @@
         
         # 5. web icon
         iconArray = QByteArray()
-        stream = QDataStream(iconArray, QIODevice.WriteOnly)
+        stream = QDataStream(iconArray, QIODevice.OpenModeFlag.WriteOnly)
         stream << page.icon()
         sessionData["Icon"] = str(iconArray.toBase64(), encoding="ascii")
         
@@ -2182,8 +2214,8 @@
         if "History" in sessionData:
             historyArray = QByteArray.fromBase64(
                 sessionData["History"].encode("ascii"),
-                QByteArray.Base64UrlEncoding)
-            stream = QDataStream(historyArray, QIODevice.ReadOnly)
+                QByteArray.Base64Option.Base64UrlEncoding)
+            stream = QDataStream(historyArray, QIODevice.OpenModeFlag.ReadOnly)
             stream >> page.history()
             
             if "HistoryIndex" in sessionData:
@@ -2224,7 +2256,7 @@
         if "Icon" in sessionData:
             iconArray = QByteArray.fromBase64(
                 sessionData["Icon"].encode("ascii"))
-            stream = QDataStream(iconArray, QIODevice.ReadOnly)
+            stream = QDataStream(iconArray, QIODevice.OpenModeFlag.ReadOnly)
             icon = QIcon()
             stream >> icon
         else:
@@ -2323,7 +2355,7 @@
                 E5SslCertificateSelectionDialog
             )
             dlg = E5SslCertificateSelectionDialog(certificates, self)
-            if dlg.exec() == QDialog.Accepted:
+            if dlg.exec() == QDialog.DialogCode.Accepted:
                 certificate = dlg.getSelectedCertificate()
             
             if certificate is None:

eric ide

mercurial