Tue, 02 Mar 2021 17:17:09 +0100
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
5641
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7780
diff
changeset
|
3 | # Copyright (c) 2016 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
5641
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a dialog to enter the minimum protocol for a host. |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | from PyQt5.QtCore import pyqtSlot |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | from PyQt5.QtWidgets import QDialog, QDialogButtonBox |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | |
7257
c4d0cac9b5c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
13 | from .Ui_HgUserConfigHostMinimumProtocolDialog import ( |
5641
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | Ui_HgUserConfigHostMinimumProtocolDialog |
7257
c4d0cac9b5c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
15 | ) |
5641
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | class HgUserConfigHostMinimumProtocolDialog( |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | QDialog, Ui_HgUserConfigHostMinimumProtocolDialog): |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | """ |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | Class implementing a dialog to enter the minimum protocol for a host. |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | """ |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | def __init__(self, allowedProtocols, parent=None, host="", protocol=""): |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | """ |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | Constructor |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | @param allowedProtocols dictionary containing the allowed protocols |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | with the value as key and the display string as value |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | @type dict |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | @param parent reference to the parent widget |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | @type QWidget |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | @param host host name |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | @type str |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | @param protocol name of the minimum protocol for the host |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | @type str |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | """ |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | super(HgUserConfigHostMinimumProtocolDialog, self).__init__(parent) |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | self.setupUi(self) |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | self.minimumProtocolComboBox.addItem("", "") |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | for minimumProtocol in sorted(allowedProtocols.keys()): |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | self.minimumProtocolComboBox.addItem( |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | allowedProtocols[minimumProtocol], minimumProtocol) |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | self.hostEdit.setText(host) |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | index = self.minimumProtocolComboBox.findData(protocol) |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | if index == -1: |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | index = 0 |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | self.minimumProtocolComboBox.setCurrentIndex(index) |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | msh = self.minimumSizeHint() |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | self.resize(max(self.width(), msh.width()), msh.height()) |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.__updateOkButton() |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | def __updateOkButton(self): |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | """ |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | Private method to update the status of the Ok button. |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | """ |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | enabled = ( |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | bool(self.hostEdit.text()) and |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | self.minimumProtocolComboBox.currentIndex() > 0 |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | ) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
64 | self.buttonBox.button( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
65 | QDialogButtonBox.StandardButton.Ok).setEnabled(enabled) |
5641
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | @pyqtSlot(str) |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | def on_hostEdit_textChanged(self, txt): |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | """ |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | Private slot to handle changes of the host edit. |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | @param txt current text |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | @type str |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | """ |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | self.__updateOkButton() |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | @pyqtSlot(int) |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | def on_minimumProtocolComboBox_currentIndexChanged(self, index): |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | """ |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | Private slot to handle the selection of a minimum protocol. |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | @param index index of the selected entry |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | @type int |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | """ |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | self.__updateOkButton() |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | def getData(self): |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | """ |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | Public method to retrieve the data. |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | @return tuple containig the host name and the minimum protocol |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | @rtype tuple of two str |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | """ |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | return ( |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | self.hostEdit.text().strip(), |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | self.minimumProtocolComboBox.itemData( |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | self.minimumProtocolComboBox.currentIndex()) |
3ced21e990eb
Extended the user configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | ) |