Helpviewer/FeaturePermissions/FeaturePermissionBar.py

changeset 4356
975993ebd7fb
parent 4355
40ec6bef4c22
child 4631
5c1a96925da4
equal deleted inserted replaced
4355:40ec6bef4c22 4356:975993ebd7fb
8 """ 8 """
9 9
10 from __future__ import unicode_literals 10 from __future__ import unicode_literals
11 11
12 from PyQt5.QtCore import pyqtSlot 12 from PyQt5.QtCore import pyqtSlot
13 from PyQt5.QtWidgets import QLabel, QHBoxLayout, QPushButton, QCheckBox 13 from PyQt5.QtWidgets import QLabel, QHBoxLayout, QPushButton
14 from PyQt5.QtWebKitWidgets import QWebPage 14 from PyQt5.QtWebKitWidgets import QWebPage
15 15
16 from E5Gui.E5AnimatedWidget import E5AnimatedWidget 16 from E5Gui.E5AnimatedWidget import E5AnimatedWidget
17 17
18 import Helpviewer 18 import Helpviewer
37 @param feature requested feature 37 @param feature requested feature
38 @type QWebPage.Feature 38 @type QWebPage.Feature
39 """ 39 """
40 super(FeaturePermissionBar, self).__init__(parent=view) 40 super(FeaturePermissionBar, self).__init__(parent=view)
41 41
42 self.__messageLabel = QLabel(self)
43
44 self.__frame = frame 42 self.__frame = frame
45 self.__feature = feature 43 self.__feature = feature
46 self.__view = view 44 self.__view = view
47 45
48 self.__permissionFeatureTexts = { 46 self.__permissionFeatureTexts = {
49 QWebPage.Notifications: 47 QWebPage.Notifications:
50 self.tr("{0} wants to use desktop notifications."), 48 self.tr("{0} wants to use desktop notifications."),
51 QWebPage.Geolocation: 49 QWebPage.Geolocation:
52 self.tr("{0} wants to use your position.") 50 self.tr("{0} wants to use your position.")
53 } 51 }
52 self.__permissionFeatureIconNames = {
53 QWebPage.Notifications: "notification.png",
54 QWebPage.Geolocation: "geolocation.png",
55 }
54 56
55 self.setAutoFillBackground(True) 57 self.setAutoFillBackground(True)
56 self.__layout = QHBoxLayout() 58 self.__layout = QHBoxLayout()
57 self.setLayout(self.__layout) 59 self.setLayout(self.__layout)
58 self.__layout.setContentsMargins(self.DefaultHeight, 0, 0, 0) 60 self.__layout.setContentsMargins(9, 0, 0, 0)
61 self.__iconLabel = QLabel(self)
62 self.__layout.addWidget(self.__iconLabel)
63 self.__messageLabel = QLabel(self)
59 self.__layout.addWidget(self.__messageLabel) 64 self.__layout.addWidget(self.__messageLabel)
60 self.__layout.addStretch() 65 self.__layout.addStretch()
61 self.__rememberCheckBox = QCheckBox(self.tr("Remember"), self) 66 self.__rememberButton = QPushButton(self.tr("Remember"), self)
62 self.__layout.addWidget(self.__rememberCheckBox) 67 self.__rememberButton.setCheckable(True)
63 self.__allowButton = QPushButton(self.tr("Allow"), self) 68 self.__allowButton = QPushButton(self.tr("Allow"), self)
64 self.__denyButton = QPushButton(self.tr("Deny"), self) 69 self.__denyButton = QPushButton(self.tr("Deny"), self)
65 self.__discardButton = QPushButton(UI.PixmapCache.getIcon("close.png"), 70 self.__discardButton = QPushButton(UI.PixmapCache.getIcon("close.png"),
66 "", self) 71 "", self)
67 self.__allowButton.clicked.connect(self.__permissionGranted) 72 self.__allowButton.clicked.connect(self.__permissionGranted)
68 self.__denyButton.clicked.connect(self.__permissionDenied) 73 self.__denyButton.clicked.connect(self.__permissionDenied)
69 self.__discardButton.clicked.connect(self.__permissionUnknown) 74 self.__discardButton.clicked.connect(self.__permissionUnknown)
75 self.__layout.addWidget(self.__rememberButton)
70 self.__layout.addWidget(self.__allowButton) 76 self.__layout.addWidget(self.__allowButton)
71 self.__layout.addWidget(self.__denyButton) 77 self.__layout.addWidget(self.__denyButton)
72 self.__layout.addWidget(self.__discardButton) 78 self.__layout.addWidget(self.__discardButton)
79
80 try:
81 self.__iconLabel.setPixmap(UI.PixmapCache.getPixmap(
82 self.__permissionFeatureIconNames[self.__feature]))
83 except KeyError:
84 pass
73 85
74 try: 86 try:
75 self.__messageLabel.setText( 87 self.__messageLabel.setText(
76 self.__permissionFeatureTexts[self.__feature].format( 88 self.__permissionFeatureTexts[self.__feature].format(
77 self.__frame.securityOrigin().host())) 89 self.__frame.securityOrigin().host()))
102 114
103 page = self.__frame.page() 115 page = self.__frame.page()
104 page.setFeaturePermission(self.__frame, self.__feature, 116 page.setFeaturePermission(self.__frame, self.__feature,
105 QWebPage.PermissionDeniedByUser) 117 QWebPage.PermissionDeniedByUser)
106 118
107 if self.__rememberCheckBox.isChecked(): 119 if self.__rememberButton.isChecked():
108 Helpviewer.HelpWindow.HelpWindow.featurePermissionManager()\ 120 Helpviewer.HelpWindow.HelpWindow.featurePermissionManager()\
109 .rememberFeaturePermission(page.url().host(), self.__feature, 121 .rememberFeaturePermission(page.url().host(), self.__feature,
110 QWebPage.PermissionDeniedByUser) 122 QWebPage.PermissionDeniedByUser)
111 123
112 self.hide() 124 self.hide()
120 132
121 page = self.__frame.page() 133 page = self.__frame.page()
122 page.setFeaturePermission(self.__frame, self.__feature, 134 page.setFeaturePermission(self.__frame, self.__feature,
123 QWebPage.PermissionGrantedByUser) 135 QWebPage.PermissionGrantedByUser)
124 136
125 if self.__rememberCheckBox.isChecked(): 137 if self.__rememberButton.isChecked():
126 Helpviewer.HelpWindow.HelpWindow.featurePermissionManager()\ 138 Helpviewer.HelpWindow.HelpWindow.featurePermissionManager()\
127 .rememberFeaturePermission(page.url().host(), self.__feature, 139 .rememberFeaturePermission(page.url().host(), self.__feature,
128 QWebPage.PermissionGrantedByUser) 140 QWebPage.PermissionGrantedByUser)
129 141
130 self.hide() 142 self.hide()

eric ide

mercurial