eric6/Helpviewer/FeaturePermissions/FeaturePermissionManager.py

changeset 7220
5cf645f6daab
parent 7218
eaf2cf171f3a
parent 7211
1c97f3142fa8
child 7221
0485ccdf7877
diff -r eaf2cf171f3a -r 5cf645f6daab eric6/Helpviewer/FeaturePermissions/FeaturePermissionManager.py
--- a/eric6/Helpviewer/FeaturePermissions/FeaturePermissionManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the feature permission manager object.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QObject
-from PyQt5.QtWidgets import QDialog
-from PyQt5.QtWebKitWidgets import QWebPage
-
-import Globals
-import Preferences
-
-
-class FeaturePermissionManager(QObject):
-    """
-    Class implementing the feature permission manager object.
-    """
-    SettingsKeyFormat = "Help/FeaturePermissions/{0}"
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object
-        @type QObject
-        """
-        super(FeaturePermissionManager, self).__init__(parent)
-        
-        self.__featurePermissions = {
-            QWebPage.Notifications: {
-                QWebPage.PermissionGrantedByUser: [],
-                QWebPage.PermissionDeniedByUser: [],
-            },
-            QWebPage.Geolocation: {
-                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",
-        }
-        
-        self.__loaded = False
-
-    def requestFeaturePermission(self, page, frame, feature):
-        """
-        Public method to request a feature permission.
-        
-        @param page reference to the requesting web page
-        @type QWebPage
-        @param frame frame sending the request
-        @type QWebFrame
-        @param feature requested feature
-        @type QWebPage.Feature
-        """
-        if page is None or frame is None:
-            return
-        
-        if not self.__loaded:
-            self.__loadSettings()
-        
-        host = page.url().host()
-        
-        if feature in self.__featurePermissions:
-            for permission in self.__featurePermissions[feature]:
-                if host in self.__featurePermissions[feature][permission]:
-                    page.setFeaturePermission(frame, feature, permission)
-                    return
-        
-        view = page.view()
-        if view is not None:
-            from .FeaturePermissionBar import FeaturePermissionBar
-            bar = FeaturePermissionBar(view, frame, feature)
-            bar.show()
-    
-    def rememberFeaturePermission(self, host, feature, permission):
-        """
-        Public method to remember a user decision for a feature permission.
-        
-        @param host host name to remember the decision for
-        @type str
-        @param feature feature to be remembered
-        @type QWebPage.Feature
-        @param permission feature permission to be remembered
-        @type QWebPage.PermissionPolicy
-        """
-        if feature in self.__featurePermissions:
-            if host not in self.__featurePermissions[feature][permission]:
-                self.__featurePermissions[feature][permission].append(host)
-                self.__saveSettings()
-    
-    def __loadSettings(self):
-        """
-        Private method to load the remembered feature permissions.
-        """
-        if self.__loaded:
-            # no reloading allowed
-            return
-        
-        for (feature, permission), key in \
-                self.__featurePermissionsKeys.items():
-            self.__featurePermissions[feature][permission] = \
-                Globals.toList(Preferences.Prefs.settings.value(
-                    FeaturePermissionManager.SettingsKeyFormat.format(key),
-                    []
-                ))
-        
-        self.__loaded = True
-    
-    def __saveSettings(self):
-        """
-        Private method to save the remembered feature permissions.
-        """
-        if not self.__loaded:
-            return
-        
-        for (feature, permission), key in \
-                self.__featurePermissionsKeys.items():
-            Preferences.Prefs.settings.setValue(
-                FeaturePermissionManager.SettingsKeyFormat.format(key),
-                self.__featurePermissions[feature][permission])
-    
-    def showFeaturePermissionsDialog(self):
-        """
-        Public method to show a dialog to manage the remembered feature
-        permissions.
-        """
-        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