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() |