WebBrowser: added support for the QWebEnginePage.Notifications as Qt 5.13.0.

Thu, 29 Aug 2019 19:02:14 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 29 Aug 2019 19:02:14 +0200
changeset 7179
912bc70b5b01
parent 7178
43e994af5ee0
child 7180
501a14306aca

WebBrowser: added support for the QWebEnginePage.Notifications as Qt 5.13.0.

eric6/WebBrowser/FeaturePermissions/FeaturePermissionBar.py file | annotate | diff | comparison | revisions
eric6/WebBrowser/FeaturePermissions/FeaturePermissionManager.py file | annotate | diff | comparison | revisions
eric6/WebBrowser/FeaturePermissions/FeaturePermissionsDialog.py file | annotate | diff | comparison | revisions
--- a/eric6/WebBrowser/FeaturePermissions/FeaturePermissionBar.py	Thu Aug 29 19:00:33 2019 +0200
+++ b/eric6/WebBrowser/FeaturePermissions/FeaturePermissionBar.py	Thu Aug 29 19:02:14 2019 +0200
@@ -67,6 +67,12 @@
             })
         except AttributeError:
             pass
+        try:
+            # this was re-added in Qt 5.13.0
+            self.__permissionFeatureTexts[QWebEnginePage.Notifications] = \
+                self.tr("{0} wants to use desktop notifications.")
+        except AttributeError:
+            pass
         
         self.__permissionFeatureIconNames = {
             QWebEnginePage.Geolocation: "geolocation.png",
@@ -84,6 +90,12 @@
             })
         except AttributeError:
             pass
+        try:
+            # this was re-added in Qt 5.13.0
+            self.__permissionFeatureIconNames[QWebEnginePage.Notifications] = \
+                "notification.png"
+        except AttributeError:
+            pass
         
         self.setAutoFillBackground(True)
         self.__layout = QHBoxLayout()
--- a/eric6/WebBrowser/FeaturePermissions/FeaturePermissionManager.py	Thu Aug 29 19:00:33 2019 +0200
+++ b/eric6/WebBrowser/FeaturePermissions/FeaturePermissionManager.py	Thu Aug 29 19:02:14 2019 +0200
@@ -68,6 +68,14 @@
             })
         except AttributeError:
             pass
+        try:
+            # this was re-added in Qt 5.13.0
+            self.__featurePermissions[QWebEnginePage.Notifications] = {
+                QWebEnginePage.PermissionGrantedByUser: [],
+                QWebEnginePage.PermissionDeniedByUser: [],
+            }
+        except AttributeError:
+            pass
         
         self.__featurePermissionsKeys = {
             (QWebEnginePage.Geolocation,
@@ -119,6 +127,18 @@
             })
         except AttributeError:
             pass
+        try:
+            # this was re-added in Qt 5.13.0
+            self.__featurePermissionsKeys.update({
+                (QWebEnginePage.Notifications,
+                 QWebEnginePage.PermissionGrantedByUser):
+                "NotificationsGranted",
+                (QWebEnginePage.Notifications,
+                 QWebEnginePage.PermissionDeniedByUser):
+                "NotificationsDenied",
+            })
+        except AttributeError:
+            pass
         
         self.__loaded = False
 
--- a/eric6/WebBrowser/FeaturePermissions/FeaturePermissionsDialog.py	Thu Aug 29 19:00:33 2019 +0200
+++ b/eric6/WebBrowser/FeaturePermissions/FeaturePermissionsDialog.py	Thu Aug 29 19:02:14 2019 +0200
@@ -38,6 +38,24 @@
         
         # add the various lists
         
+        if hasattr(QWebEnginePage, "Notifications"):
+            # this was re-added in Qt 5.13.0
+            self.notifList = QTreeWidget()
+            self.notifList.setAlternatingRowColors(True)
+            self.notifList.setSelectionMode(
+                QAbstractItemView.ExtendedSelection)
+            self.notifList.setRootIsDecorated(False)
+            self.notifList.setItemsExpandable(False)
+            self.notifList.setAllColumnsShowFocus(True)
+            self.notifList.setObjectName("notifList")
+            self.notifList.setSortingEnabled(True)
+            self.notifList.headerItem().setText(0, self.tr("Host"))
+            self.notifList.headerItem().setText(1, self.tr("Permission"))
+            self.tabWidget.addTab(
+                self.notifList,
+                UI.PixmapCache.getIcon("notification.png"),
+                self.tr("Notifications"))
+        
         self.geoList = QTreeWidget()
         self.geoList.setAlternatingRowColors(True)
         self.geoList.setSelectionMode(QAbstractItemView.ExtendedSelection)
@@ -148,7 +166,11 @@
                 UI.PixmapCache.getIcon("desktopAudioVideoCapture.png"),
                 self.tr("Desktop Audio && Video"))
         
-        self.setTabOrder(self.tabWidget, self.geoList)
+        if hasattr(QWebEnginePage, "Notifications"):
+            self.setTabOrder(self.tabWidget, self.notifList)
+            self.setTabOrder(self.notifList, self.geoList)
+        else:
+            self.setTabOrder(self.tabWidget, self.geoList)
         self.setTabOrder(self.geoList, self.micList)
         self.setTabOrder(self.micList, self.camList)
         self.setTabOrder(self.camList, self.micCamList)
@@ -178,6 +200,9 @@
                 QWebEnginePage.DesktopVideoCapture: self.deskVidList,
                 QWebEnginePage.DesktopAudioVideoCapture: self.deskAudVidList,
             })
+        if hasattr(QWebEnginePage, "Notifications"):
+            self.__permissionsLists[QWebEnginePage.Notifications] = \
+                self.notifList
         
         for feature, permissionsList in self.__permissionsLists.items():
             for permission in featurePermissions[feature]:

eric ide

mercurial