MqttMonitor/MqttConnectionOptionsDialog.py

branch
eric7
changeset 97
21f9c010dc42
parent 92
2fb5c08019fd
child 103
5fe4f179975f
diff -r 06d1cba236eb -r 21f9c010dc42 MqttMonitor/MqttConnectionOptionsDialog.py
--- a/MqttMonitor/MqttConnectionOptionsDialog.py	Mon Jun 28 17:44:07 2021 +0200
+++ b/MqttMonitor/MqttConnectionOptionsDialog.py	Sun Jul 18 18:30:15 2021 +0200
@@ -15,6 +15,8 @@
 
 from .Ui_MqttConnectionOptionsDialog import Ui_MqttConnectionOptionsDialog
 
+from .MqttClient import MqttClient, MqttProtocols
+
 from Utilities.crypto import pwConvert
 
 
@@ -22,17 +24,15 @@
     """
     Class implementing a dialog to enter MQTT connection options.
     """
-    def __init__(self, client, options=None, parent=None):
+    def __init__(self, options=None, parent=None):
         """
         Constructor
         
-        @param client reference to the MQTT client object
-        @type MqttClient
         @param options dictionary containing the connection options to
             populate the dialog with. It must have the keys "ClientId",
-            "Keepalive", "CleanSession", "Username", "Password", "WillTopic",
-            "WillMessage", "WillQos", "WillRetain", "TlsEnable", "TlsCaCert",
-            "ConnectionTimeout".
+            "Protocol", "ConnectionTimeout", "Keepalive", "CleanSession",
+            "Username", "Password", "WillTopic", "WillMessage", "WillQos",
+            "WillRetain", "TlsEnable", "TlsCaCert".
         @type dict
         @param parent reference to the parent widget
         @type QWidget
@@ -40,8 +40,6 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.__client = client
-        
         self.tlsCertsFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.tlsCertsFilePicker.setFilters(
             self.tr("Certificate Files (*.crt *.pem);;All Files (*)"))
@@ -106,10 +104,16 @@
         @type dict
         """
         if options is None:
-            options = self.__client.defaultConnectionOptions()
+            options = MqttClient.defaultConnectionOptions()
         
         # general
         self.clientIdEdit.setText(options["ClientId"])
+        self.mqttv31Button.setChecked(
+            options["Protocol"] == MqttProtocols.MQTTv31)
+        self.mqttv311Button.setChecked(
+            options["Protocol"] == MqttProtocols.MQTTv311)
+        self.mqttv5Button.setChecked(
+            options["Protocol"] == MqttProtocols.MQTTv5)
         self.connectionTimeoutSpinBox.setValue(options["ConnectionTimeout"])
         self.keepaliveSpinBox.setValue(options["Keepalive"])
         self.cleanSessionCheckBox.setChecked(options["CleanSession"])
@@ -133,13 +137,23 @@
         Public method get the entered connection options.
         
         @return dictionary containing the connection options. It has the keys
-            "ClientId", "Keepalive", "CleanSession", "Username", "Password",
-            "WillTopic", "WillMessage", "WillQos", "WillRetain", "TlsEnable",
-            "TlsCaCert", "ConnectionTimeout".
+            "ClientId", "Protocol", "ConnectionTimeout", "Keepalive",
+            "CleanSession", "Username", "Password", "WillTopic", "WillMessage",
+            "WillQos", "WillRetain", "TlsEnable", "TlsCaCert".
         @rtype dict
         """
+        if self.mqttv31Button.isChecked():
+            protocol = MqttProtocols.MQTTv31
+        elif self.mqttv311Button.isChecked():
+            protocol = MqttProtocols.MQTTv311
+        elif self.mqttv5Button.isChecked():
+            protocol = MqttProtocols.MQTTv5
+        else:
+            protocol = MqttProtocols.MQTTv311
+        
         return {
             "ClientId": self.clientIdEdit.text(),
+            "Protocol": protocol,
             "ConnectionTimeout": self.connectionTimeoutSpinBox.value(),
             "Keepalive": self.keepaliveSpinBox.value(),
             "CleanSession": self.cleanSessionCheckBox.isChecked(),

eric ide

mercurial