MqttMonitor/MqttConnectionOptionsDialog.py

branch
eric7
changeset 97
21f9c010dc42
parent 92
2fb5c08019fd
child 103
5fe4f179975f
equal deleted inserted replaced
96:06d1cba236eb 97:21f9c010dc42
13 from EricWidgets import EricMessageBox 13 from EricWidgets import EricMessageBox
14 from EricWidgets.EricPathPicker import EricPathPickerModes 14 from EricWidgets.EricPathPicker import EricPathPickerModes
15 15
16 from .Ui_MqttConnectionOptionsDialog import Ui_MqttConnectionOptionsDialog 16 from .Ui_MqttConnectionOptionsDialog import Ui_MqttConnectionOptionsDialog
17 17
18 from .MqttClient import MqttClient, MqttProtocols
19
18 from Utilities.crypto import pwConvert 20 from Utilities.crypto import pwConvert
19 21
20 22
21 class MqttConnectionOptionsDialog(QDialog, Ui_MqttConnectionOptionsDialog): 23 class MqttConnectionOptionsDialog(QDialog, Ui_MqttConnectionOptionsDialog):
22 """ 24 """
23 Class implementing a dialog to enter MQTT connection options. 25 Class implementing a dialog to enter MQTT connection options.
24 """ 26 """
25 def __init__(self, client, options=None, parent=None): 27 def __init__(self, options=None, parent=None):
26 """ 28 """
27 Constructor 29 Constructor
28 30
29 @param client reference to the MQTT client object
30 @type MqttClient
31 @param options dictionary containing the connection options to 31 @param options dictionary containing the connection options to
32 populate the dialog with. It must have the keys "ClientId", 32 populate the dialog with. It must have the keys "ClientId",
33 "Keepalive", "CleanSession", "Username", "Password", "WillTopic", 33 "Protocol", "ConnectionTimeout", "Keepalive", "CleanSession",
34 "WillMessage", "WillQos", "WillRetain", "TlsEnable", "TlsCaCert", 34 "Username", "Password", "WillTopic", "WillMessage", "WillQos",
35 "ConnectionTimeout". 35 "WillRetain", "TlsEnable", "TlsCaCert".
36 @type dict 36 @type dict
37 @param parent reference to the parent widget 37 @param parent reference to the parent widget
38 @type QWidget 38 @type QWidget
39 """ 39 """
40 super().__init__(parent) 40 super().__init__(parent)
41 self.setupUi(self) 41 self.setupUi(self)
42
43 self.__client = client
44 42
45 self.tlsCertsFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) 43 self.tlsCertsFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
46 self.tlsCertsFilePicker.setFilters( 44 self.tlsCertsFilePicker.setFilters(
47 self.tr("Certificate Files (*.crt *.pem);;All Files (*)")) 45 self.tr("Certificate Files (*.crt *.pem);;All Files (*)"))
48 46
104 "WillQos", "WillRetain", "TlsEnable", "TlsCaCert", 102 "WillQos", "WillRetain", "TlsEnable", "TlsCaCert",
105 "ConnectionTimeout". 103 "ConnectionTimeout".
106 @type dict 104 @type dict
107 """ 105 """
108 if options is None: 106 if options is None:
109 options = self.__client.defaultConnectionOptions() 107 options = MqttClient.defaultConnectionOptions()
110 108
111 # general 109 # general
112 self.clientIdEdit.setText(options["ClientId"]) 110 self.clientIdEdit.setText(options["ClientId"])
111 self.mqttv31Button.setChecked(
112 options["Protocol"] == MqttProtocols.MQTTv31)
113 self.mqttv311Button.setChecked(
114 options["Protocol"] == MqttProtocols.MQTTv311)
115 self.mqttv5Button.setChecked(
116 options["Protocol"] == MqttProtocols.MQTTv5)
113 self.connectionTimeoutSpinBox.setValue(options["ConnectionTimeout"]) 117 self.connectionTimeoutSpinBox.setValue(options["ConnectionTimeout"])
114 self.keepaliveSpinBox.setValue(options["Keepalive"]) 118 self.keepaliveSpinBox.setValue(options["Keepalive"])
115 self.cleanSessionCheckBox.setChecked(options["CleanSession"]) 119 self.cleanSessionCheckBox.setChecked(options["CleanSession"])
116 120
117 # user credentials 121 # user credentials
131 def getConnectionOptions(self): 135 def getConnectionOptions(self):
132 """ 136 """
133 Public method get the entered connection options. 137 Public method get the entered connection options.
134 138
135 @return dictionary containing the connection options. It has the keys 139 @return dictionary containing the connection options. It has the keys
136 "ClientId", "Keepalive", "CleanSession", "Username", "Password", 140 "ClientId", "Protocol", "ConnectionTimeout", "Keepalive",
137 "WillTopic", "WillMessage", "WillQos", "WillRetain", "TlsEnable", 141 "CleanSession", "Username", "Password", "WillTopic", "WillMessage",
138 "TlsCaCert", "ConnectionTimeout". 142 "WillQos", "WillRetain", "TlsEnable", "TlsCaCert".
139 @rtype dict 143 @rtype dict
140 """ 144 """
145 if self.mqttv31Button.isChecked():
146 protocol = MqttProtocols.MQTTv31
147 elif self.mqttv311Button.isChecked():
148 protocol = MqttProtocols.MQTTv311
149 elif self.mqttv5Button.isChecked():
150 protocol = MqttProtocols.MQTTv5
151 else:
152 protocol = MqttProtocols.MQTTv311
153
141 return { 154 return {
142 "ClientId": self.clientIdEdit.text(), 155 "ClientId": self.clientIdEdit.text(),
156 "Protocol": protocol,
143 "ConnectionTimeout": self.connectionTimeoutSpinBox.value(), 157 "ConnectionTimeout": self.connectionTimeoutSpinBox.value(),
144 "Keepalive": self.keepaliveSpinBox.value(), 158 "Keepalive": self.keepaliveSpinBox.value(),
145 "CleanSession": self.cleanSessionCheckBox.isChecked(), 159 "CleanSession": self.cleanSessionCheckBox.isChecked(),
146 "Username": self.usernameEdit.text(), 160 "Username": self.usernameEdit.text(),
147 "Password": pwConvert(self.passwordEdit.text(), encode=True), 161 "Password": pwConvert(self.passwordEdit.text(), encode=True),

eric ide

mercurial