eric7/WebBrowser/FeaturePermissions/FeaturePermissionsDialog.py

branch
eric7
changeset 8561
641304b46f08
parent 8553
10d31e5ce9e5
child 8881
54e42bc2437a
equal deleted inserted replaced
8558:396fc1508450 8561:641304b46f08
35 super().__init__(parent) 35 super().__init__(parent)
36 self.setupUi(self) 36 self.setupUi(self)
37 37
38 # add the various lists 38 # add the various lists
39 39
40 if hasattr(QWebEnginePage, "Notifications"): 40 self.notifList = QTreeWidget()
41 # this was re-added in Qt 5.13.0 41 self.notifList.setAlternatingRowColors(True)
42 self.notifList = QTreeWidget() 42 self.notifList.setSelectionMode(
43 self.notifList.setAlternatingRowColors(True) 43 QAbstractItemView.SelectionMode.ExtendedSelection)
44 self.notifList.setSelectionMode( 44 self.notifList.setRootIsDecorated(False)
45 QAbstractItemView.SelectionMode.ExtendedSelection) 45 self.notifList.setItemsExpandable(False)
46 self.notifList.setRootIsDecorated(False) 46 self.notifList.setAllColumnsShowFocus(True)
47 self.notifList.setItemsExpandable(False) 47 self.notifList.setObjectName("notifList")
48 self.notifList.setAllColumnsShowFocus(True) 48 self.notifList.setSortingEnabled(True)
49 self.notifList.setObjectName("notifList") 49 self.notifList.headerItem().setText(0, self.tr("Host"))
50 self.notifList.setSortingEnabled(True) 50 self.notifList.headerItem().setText(1, self.tr("Permission"))
51 self.notifList.headerItem().setText(0, self.tr("Host")) 51 self.tabWidget.addTab(
52 self.notifList.headerItem().setText(1, self.tr("Permission")) 52 self.notifList,
53 self.tabWidget.addTab( 53 UI.PixmapCache.getIcon("notification"),
54 self.notifList, 54 self.tr("Notifications"))
55 UI.PixmapCache.getIcon("notification"),
56 self.tr("Notifications"))
57 55
58 self.geoList = QTreeWidget() 56 self.geoList = QTreeWidget()
59 self.geoList.setAlternatingRowColors(True) 57 self.geoList.setAlternatingRowColors(True)
60 self.geoList.setSelectionMode( 58 self.geoList.setSelectionMode(
61 QAbstractItemView.SelectionMode.ExtendedSelection) 59 QAbstractItemView.SelectionMode.ExtendedSelection)
133 self.tabWidget.addTab( 131 self.tabWidget.addTab(
134 self.mouseLockList, 132 self.mouseLockList,
135 UI.PixmapCache.getIcon("mouse"), 133 UI.PixmapCache.getIcon("mouse"),
136 self.tr("Mouse Lock")) 134 self.tr("Mouse Lock"))
137 135
138 if hasattr(QWebEnginePage, "DesktopVideoCapture"): 136 self.deskVidList = QTreeWidget()
139 # these are shown as of Qt 5.10.0/PyQt 5.10.0 137 self.deskVidList.setAlternatingRowColors(True)
140 self.deskVidList = QTreeWidget() 138 self.deskVidList.setSelectionMode(
141 self.deskVidList.setAlternatingRowColors(True) 139 QAbstractItemView.SelectionMode.ExtendedSelection)
142 self.deskVidList.setSelectionMode( 140 self.deskVidList.setRootIsDecorated(False)
143 QAbstractItemView.SelectionMode.ExtendedSelection) 141 self.deskVidList.setItemsExpandable(False)
144 self.deskVidList.setRootIsDecorated(False) 142 self.deskVidList.setAllColumnsShowFocus(True)
145 self.deskVidList.setItemsExpandable(False) 143 self.deskVidList.setObjectName("deskVidList")
146 self.deskVidList.setAllColumnsShowFocus(True) 144 self.deskVidList.setSortingEnabled(True)
147 self.deskVidList.setObjectName("deskVidList") 145 self.deskVidList.headerItem().setText(0, self.tr("Host"))
148 self.deskVidList.setSortingEnabled(True) 146 self.deskVidList.headerItem().setText(1, self.tr("Permission"))
149 self.deskVidList.headerItem().setText(0, self.tr("Host")) 147 self.tabWidget.addTab(
150 self.deskVidList.headerItem().setText(1, self.tr("Permission")) 148 self.deskVidList,
151 self.tabWidget.addTab( 149 UI.PixmapCache.getIcon("desktopVideoCapture"),
152 self.deskVidList, 150 self.tr("Desktop Video"))
153 UI.PixmapCache.getIcon("desktopVideoCapture"), 151
154 self.tr("Desktop Video")) 152 self.deskAudVidList = QTreeWidget()
155 153 self.deskAudVidList.setAlternatingRowColors(True)
156 self.deskAudVidList = QTreeWidget() 154 self.deskAudVidList.setSelectionMode(
157 self.deskAudVidList.setAlternatingRowColors(True) 155 QAbstractItemView.SelectionMode.ExtendedSelection)
158 self.deskAudVidList.setSelectionMode( 156 self.deskAudVidList.setRootIsDecorated(False)
159 QAbstractItemView.SelectionMode.ExtendedSelection) 157 self.deskAudVidList.setItemsExpandable(False)
160 self.deskAudVidList.setRootIsDecorated(False) 158 self.deskAudVidList.setAllColumnsShowFocus(True)
161 self.deskAudVidList.setItemsExpandable(False) 159 self.deskAudVidList.setObjectName("deskAudVidList")
162 self.deskAudVidList.setAllColumnsShowFocus(True) 160 self.deskAudVidList.setSortingEnabled(True)
163 self.deskAudVidList.setObjectName("deskAudVidList") 161 self.deskAudVidList.headerItem().setText(0, self.tr("Host"))
164 self.deskAudVidList.setSortingEnabled(True) 162 self.deskAudVidList.headerItem().setText(1, self.tr("Permission"))
165 self.deskAudVidList.headerItem().setText(0, self.tr("Host")) 163 self.tabWidget.addTab(
166 self.deskAudVidList.headerItem().setText(1, self.tr("Permission")) 164 self.deskAudVidList,
167 self.tabWidget.addTab( 165 UI.PixmapCache.getIcon("desktopAudioVideoCapture"),
168 self.deskAudVidList, 166 self.tr("Desktop Audio && Video"))
169 UI.PixmapCache.getIcon("desktopAudioVideoCapture"), 167
170 self.tr("Desktop Audio && Video")) 168 self.setTabOrder(self.tabWidget, self.notifList)
171 169 self.setTabOrder(self.notifList, self.geoList)
172 if hasattr(QWebEnginePage, "Notifications"):
173 self.setTabOrder(self.tabWidget, self.notifList)
174 self.setTabOrder(self.notifList, self.geoList)
175 else:
176 self.setTabOrder(self.tabWidget, self.geoList)
177 self.setTabOrder(self.geoList, self.micList) 170 self.setTabOrder(self.geoList, self.micList)
178 self.setTabOrder(self.micList, self.camList) 171 self.setTabOrder(self.micList, self.camList)
179 self.setTabOrder(self.camList, self.micCamList) 172 self.setTabOrder(self.camList, self.micCamList)
180 self.setTabOrder(self.micCamList, self.mouseLockList) 173 self.setTabOrder(self.micCamList, self.mouseLockList)
181 if hasattr(QWebEnginePage, "DesktopVideoCapture"): 174 self.setTabOrder(self.mouseLockList, self.deskVidList)
182 self.setTabOrder(self.mouseLockList, self.deskVidList) 175 self.setTabOrder(self.deskVidList, self.deskAudVidList)
183 self.setTabOrder(self.deskVidList, self.deskAudVidList) 176 self.setTabOrder(self.deskAudVidList, self.removeButton)
184 self.setTabOrder(self.deskAudVidList, self.removeButton)
185 else:
186 self.setTabOrder(self.mouseLockList, self.removeButton)
187 self.setTabOrder(self.removeButton, self.removeAllButton) 177 self.setTabOrder(self.removeButton, self.removeAllButton)
188 178
189 self.__permissionStrings = { 179 self.__permissionStrings = {
190 QWebEnginePage.PermissionPolicy.PermissionGrantedByUser: 180 QWebEnginePage.PermissionPolicy.PermissionGrantedByUser:
191 self.tr("Allow"), 181 self.tr("Allow"),
197 QWebEnginePage.Feature.Geolocation: self.geoList, 187 QWebEnginePage.Feature.Geolocation: self.geoList,
198 QWebEnginePage.Feature.MediaAudioCapture: self.micList, 188 QWebEnginePage.Feature.MediaAudioCapture: self.micList,
199 QWebEnginePage.Feature.MediaVideoCapture: self.camList, 189 QWebEnginePage.Feature.MediaVideoCapture: self.camList,
200 QWebEnginePage.Feature.MediaAudioVideoCapture: self.micCamList, 190 QWebEnginePage.Feature.MediaAudioVideoCapture: self.micCamList,
201 QWebEnginePage.Feature.MouseLock: self.mouseLockList, 191 QWebEnginePage.Feature.MouseLock: self.mouseLockList,
192 QWebEnginePage.Feature.DesktopVideoCapture: self.deskVidList,
193 QWebEnginePage.Feature.DesktopAudioVideoCapture:
194 self.deskAudVidList,
195 QWebEnginePage.Feature.Notifications: self.notifList,
202 } 196 }
203 if hasattr(QWebEnginePage, "DesktopVideoCapture"):
204 self.__permissionsLists.update({
205 QWebEnginePage.Feature.DesktopVideoCapture:
206 self.deskVidList,
207 QWebEnginePage.Feature.DesktopAudioVideoCapture:
208 self.deskAudVidList,
209 })
210 if hasattr(QWebEnginePage, "Notifications"):
211 self.__permissionsLists[QWebEnginePage.Feature.Notifications] = (
212 self.notifList
213 )
214 197
215 for feature, permissionsList in self.__permissionsLists.items(): 198 for feature, permissionsList in self.__permissionsLists.items():
216 for permission in featurePermissions[feature]: 199 for permission in featurePermissions[feature]:
217 for host in featurePermissions[feature][permission]: 200 for host in featurePermissions[feature][permission]:
218 itm = QTreeWidgetItem( 201 itm = QTreeWidgetItem(
279 """ 262 """
280 currentList = self.tabWidget.currentWidget() 263 currentList = self.tabWidget.currentWidget()
281 while currentList.topLevelItemCount() > 0: 264 while currentList.topLevelItemCount() > 0:
282 itm = currentList.takeTopLevelItem(0) # __IGNORE_WARNING__ 265 itm = currentList.takeTopLevelItem(0) # __IGNORE_WARNING__
283 del itm 266 del itm
284 self.__updateGeoButtons() 267 self.__updateButtons()
285 268
286 def getData(self): 269 def getData(self):
287 """ 270 """
288 Public method to retrieve the dialog contents. 271 Public method to retrieve the dialog contents.
289 272

eric ide

mercurial