Helpviewer/FeaturePermissions/FeaturePermissionManager.py

changeset 4356
975993ebd7fb
parent 4355
40ec6bef4c22
child 4631
5c1a96925da4
diff -r 40ec6bef4c22 -r 975993ebd7fb Helpviewer/FeaturePermissions/FeaturePermissionManager.py
--- a/Helpviewer/FeaturePermissions/FeaturePermissionManager.py	Thu Aug 06 19:01:39 2015 +0200
+++ b/Helpviewer/FeaturePermissions/FeaturePermissionManager.py	Fri Aug 07 19:40:15 2015 +0200
@@ -10,6 +10,7 @@
 from __future__ import unicode_literals
 
 from PyQt5.QtCore import QObject
+from PyQt5.QtWidgets import QDialog
 from PyQt5.QtWebKitWidgets import QWebPage
 
 import Globals
@@ -33,30 +34,30 @@
         
         self.__featurePermissions = {
             QWebPage.Notifications: {
-                QWebPage.PermissionGrantedByUser: [], 
+                QWebPage.PermissionGrantedByUser: [],
                 QWebPage.PermissionDeniedByUser: [],
             },
             QWebPage.Geolocation: {
-                QWebPage.PermissionGrantedByUser: [], 
+                QWebPage.PermissionGrantedByUser: [],
                 QWebPage.PermissionDeniedByUser: [],
             },
         }
         self.__featurePermissionsKeys = {
-            (QWebPage.Notifications, QWebPage.PermissionGrantedByUser): 
-                    "NotificationsGranted",
-            (QWebPage.Notifications, QWebPage.PermissionDeniedByUser): 
-                    "NotificationsDenied",
-            (QWebPage.Geolocation, QWebPage.PermissionGrantedByUser): 
-                    "GeolocationGranted",
-            (QWebPage.Geolocation, QWebPage.PermissionDeniedByUser): 
-                    "GeolocationDenied",
+            (QWebPage.Notifications, QWebPage.PermissionGrantedByUser):
+                "NotificationsGranted",
+            (QWebPage.Notifications, QWebPage.PermissionDeniedByUser):
+                "NotificationsDenied",
+            (QWebPage.Geolocation, QWebPage.PermissionGrantedByUser):
+                "GeolocationGranted",
+            (QWebPage.Geolocation, QWebPage.PermissionDeniedByUser):
+                "GeolocationDenied",
         }
         
         self.__loaded = False
 
     def requestFeaturePermission(self, page, frame, feature):
         """
-        Private method to request a feature permission.
+        Public method to request a feature permission.
         
         @param page reference to the requesting web page
         @type QWebPage
@@ -137,5 +138,12 @@
         Public method to show a dialog to manage the remembered feature
         permissions.
         """
-        # TODO: implement this
-        pass
+        if not self.__loaded:
+            self.__loadSettings()
+        
+        from .FeaturePermissionsDialog import FeaturePermissionsDialog
+        dlg = FeaturePermissionsDialog(self.__featurePermissions)
+        if dlg.exec_() == QDialog.Accepted:
+            newFeaturePermissions = dlg.getData()
+            self.__featurePermissions = newFeaturePermissions
+            self.__saveSettings()

eric ide

mercurial