Updated copyright for 2021.
6695
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1
|
# -*- coding: utf-8 -*- |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2
|
|
7923
|
3
|
# Copyright (c) 2019 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
6695
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4
|
# |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7
|
Module implementing a dialog to manage registered protocol handlers. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10
|
from PyQt5.QtCore import pyqtSlot, Qt |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11
|
from PyQt5.QtWidgets import QDialog, QTreeWidgetItem |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13
|
from .Ui_ProtocolHandlerManagerDialog import Ui_ProtocolHandlerManagerDialog |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16
|
class ProtocolHandlerManagerDialog(QDialog, Ui_ProtocolHandlerManagerDialog): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18
|
Class implementing a dialog to manage registered protocol handlers. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20
|
def __init__(self, manager, parent=None): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22
|
Constructor |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24
|
@param manager reference to the protocol handlers manager object |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25
|
@type ProtocolHandlerManager |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26
|
@param parent reference to the parent widget |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27
|
@type QWidget |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29
|
super(ProtocolHandlerManagerDialog, self).__init__(parent) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30
|
self.setupUi(self) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31
|
self.setAttribute(Qt.WA_DeleteOnClose) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33
|
self.__manager = manager |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34
|
handlers = self.__manager.protocolHandlers() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35
|
for scheme in sorted(handlers.keys()): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36
|
QTreeWidgetItem(self.protocolHandlersList, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37
|
[scheme, handlers[scheme].toString()]) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39
|
self.on_protocolHandlersList_itemSelectionChanged() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41
|
@pyqtSlot() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42
|
def on_protocolHandlersList_itemSelectionChanged(self): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44
|
Private slot handling a change of the selection. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46
|
self.deleteButton.setEnabled( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47
|
len(self.protocolHandlersList.selectedItems()) == 1) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49
|
@pyqtSlot() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50
|
def on_deleteButton_clicked(self): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52
|
Private slot to delete the selected protocol handler. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54
|
itm = self.protocolHandlersList.selectedItems()[0] |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55
|
self.__manager.removeProtocolHandler(itm.text(0)) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57
|
self.protocolHandlersList.takeTopLevelItem( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58
|
self.protocolHandlersList.indexOfTopLevelItem(itm)) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59
|
del itm |