Helpviewer/FeaturePermissionBar.py

Wed, 05 Aug 2015 19:45:33 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 05 Aug 2015 19:45:33 +0200
changeset 4353
cff7e27fb7b8
parent 4332
64034d85c709
permissions
-rw-r--r--

Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.

4316
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2015 Detlev Offenbach <detlev@die-offenbachs.de>
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the feature permission bar widget.
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from __future__ import unicode_literals
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
4353
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
12 from PyQt5.QtCore import pyqtSignal
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
13 from PyQt5.QtWidgets import QLabel, QHBoxLayout, QPushButton
4316
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from PyQt5.QtWebKitWidgets import QWebFrame, QWebPage
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
4353
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
16 from E5Gui.E5AnimatedWidget import E5AnimatedWidget
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
17
4316
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 import UI.PixmapCache
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
4332
64034d85c709 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4316
diff changeset
20
4353
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
21 class FeaturePermissionBar(E5AnimatedWidget):
4316
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 Class implementing the feature permission bar widget.
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 featurePermissionProvided = pyqtSignal(QWebFrame, QWebPage.Feature,
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 QWebPage.PermissionPolicy)
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 DefaultHeight = 30
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
4353
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
30 def __init__(self, view, frame, feature):
4316
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 Constructor
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 @param view reference to the web view
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 @type QWebView
4353
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
36 @param frame frame sending the request
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
37 @type QWebFrame
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
38 @param feature requested feature
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
39 @type QWebPage.Feature
4316
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
4353
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
41 super(FeaturePermissionBar, self).__init__(parent=view)
4316
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.__messageLabel = QLabel(self)
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
4353
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
45 self.__frame = frame
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
46 self.__feature = feature
4316
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.__permissionFeatureTexts = {
4332
64034d85c709 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4316
diff changeset
49 QWebPage.Notifications:
4316
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.tr("{0} wants to use desktop notifications."),
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 QWebPage.Geolocation:
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 self.tr("{0} wants to use your position.")
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 }
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.setAutoFillBackground(True)
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.__layout = QHBoxLayout()
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 self.setLayout(self.__layout)
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 self.__layout.setContentsMargins(self.DefaultHeight, 0, 0, 0)
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 self.__layout.addWidget(self.__messageLabel)
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.__layout.addStretch()
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 self.__allowButton = QPushButton(self.tr("Allow"), self)
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 self.__denyButton = QPushButton(self.tr("Deny"), self)
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self.__discardButton = QPushButton(UI.PixmapCache.getIcon("close.png"),
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 "", self)
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 self.__allowButton.clicked.connect(self.__permissionGranted)
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 self.__denyButton.clicked.connect(self.__permissionDenied)
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 self.__discardButton.clicked.connect(self.__permissionUnknown)
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 self.__layout.addWidget(self.__allowButton)
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 self.__layout.addWidget(self.__denyButton)
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 self.__layout.addWidget(self.__discardButton)
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 try:
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 self.__messageLabel.setText(
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 self.__permissionFeatureTexts[self.__feature].format(
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 self.__frame.securityOrigin().host()))
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 except KeyError:
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 self.__messageLabel.setText(
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 self.tr("{0} wants to use an unknown feature.").format(
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.__frame.securityOrigin().host()))
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80
4353
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
81 self.resize(view.width(), self.height())
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
82 self.startAnimation()
4316
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 def __permissionDenied(self):
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 """
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 Private slot handling the user pressing the deny button.
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 """
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 self.featurePermissionProvided.emit(self.__frame, self.__feature,
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 QWebPage.PermissionDeniedByUser)
4353
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
90 self.hide()
4316
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 def __permissionGranted(self):
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 """
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 Private slot handling the user pressing the allow button.
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 """
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 self.featurePermissionProvided.emit(self.__frame, self.__feature,
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 QWebPage.PermissionGrantedByUser)
4353
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
98 self.hide()
4316
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 def __permissionUnknown(self):
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 """
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 Private slot handling the user closing the dialog without.
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 """
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 self.featurePermissionProvided.emit(self.__frame, self.__feature,
493891cbacee Added support for feature permissions to the eric web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 QWebPage.PermissionUnknown)
4353
cff7e27fb7b8 Added the E5AnimatedWidget class and changed FeaturePermissionBar to use it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4332
diff changeset
106 self.hide()

eric ide

mercurial