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