--- a/eric6/WebBrowser/WebBrowserView.py Mon Mar 01 17:48:43 2021 +0100 +++ b/eric6/WebBrowser/WebBrowserView.py Tue Mar 02 17:17:09 2021 +0100 @@ -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: