Thu, 22 Jul 2021 19:02:32 +0200
Continued implementing support for MQTT v5 user properties.
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
84
044df16e55aa
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
78
diff
changeset
|
3 | # Copyright (c) 2018 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
11
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
4 | # |
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
5 | |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a dialog to enter MQTT connection options. |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
103
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
10 | import copy |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
11 | |
92
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
86
diff
changeset
|
12 | from PyQt6.QtCore import pyqtSlot, QUuid |
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
86
diff
changeset
|
13 | from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QAbstractButton |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
92
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
86
diff
changeset
|
15 | from EricWidgets import EricMessageBox |
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
86
diff
changeset
|
16 | from EricWidgets.EricPathPicker import EricPathPickerModes |
20
3737a78bb6c5
MqttConnectionOptionsDialog: added some validity checks and added the default value for 'keepalive' setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
18
diff
changeset
|
17 | |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | from .Ui_MqttConnectionOptionsDialog import Ui_MqttConnectionOptionsDialog |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
20 | from .MqttClient import MqttClient, MqttProtocols |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
21 | |
22
545979c7dcd4
MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
20
diff
changeset
|
22 | from Utilities.crypto import pwConvert |
545979c7dcd4
MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
20
diff
changeset
|
23 | |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | class MqttConnectionOptionsDialog(QDialog, Ui_MqttConnectionOptionsDialog): |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | Class implementing a dialog to enter MQTT connection options. |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | """ |
103
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
29 | # TODO: add WILL user properties |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
30 | def __init__(self, options=None, parent=None): |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | Constructor |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | @param options dictionary containing the connection options to |
11
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
35 | populate the dialog with. It must have the keys "ClientId", |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
36 | "Protocol", "ConnectionTimeout", "Keepalive", "CleanSession", |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
37 | "Username", "Password", "WillTopic", "WillMessage", "WillQos", |
103
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
38 | "WillRetain", "TlsEnable", "TlsCaCert", "UserProperties". |
18
bbfe5866b6aa
MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11
diff
changeset
|
39 | @type dict |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | @param parent reference to the parent widget |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | @type QWidget |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | """ |
86
620022b14cb4
Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
84
diff
changeset
|
43 | super().__init__(parent) |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | self.setupUi(self) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | |
92
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
86
diff
changeset
|
46 | self.tlsCertsFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) |
25
01d44a4decf5
MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
47 | self.tlsCertsFilePicker.setFilters( |
01d44a4decf5
MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
48 | self.tr("Certificate Files (*.crt *.pem);;All Files (*)")) |
01d44a4decf5
MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
49 | |
103
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
50 | # initialize MQTTv5 related stuff |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
51 | self.on_mqttv5Button_toggled(False) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
52 | |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | self.__populateDefaults(options=options) |
20
3737a78bb6c5
MqttConnectionOptionsDialog: added some validity checks and added the default value for 'keepalive' setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
18
diff
changeset
|
54 | |
103
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
55 | self.connectPropertiesButton.clicked[bool].connect( |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
56 | self.__propertiesTypeSelected) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
57 | self.disconnectPropertiesButton.clicked[bool].connect( |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
58 | self.__propertiesTypeSelected) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
59 | |
20
3737a78bb6c5
MqttConnectionOptionsDialog: added some validity checks and added the default value for 'keepalive' setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
18
diff
changeset
|
60 | self.__updateOkButton() |
3737a78bb6c5
MqttConnectionOptionsDialog: added some validity checks and added the default value for 'keepalive' setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
18
diff
changeset
|
61 | |
3737a78bb6c5
MqttConnectionOptionsDialog: added some validity checks and added the default value for 'keepalive' setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
18
diff
changeset
|
62 | def __updateOkButton(self): |
3737a78bb6c5
MqttConnectionOptionsDialog: added some validity checks and added the default value for 'keepalive' setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
18
diff
changeset
|
63 | """ |
3737a78bb6c5
MqttConnectionOptionsDialog: added some validity checks and added the default value for 'keepalive' setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
18
diff
changeset
|
64 | Private method to update the enabled state of the OK button. |
3737a78bb6c5
MqttConnectionOptionsDialog: added some validity checks and added the default value for 'keepalive' setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
18
diff
changeset
|
65 | """ |
78
a22328182bc2
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
66
diff
changeset
|
66 | if ( |
a22328182bc2
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
66
diff
changeset
|
67 | self.clientIdEdit.text() == "" and |
a22328182bc2
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
66
diff
changeset
|
68 | not self.cleanSessionCheckBox.isChecked() |
a22328182bc2
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
66
diff
changeset
|
69 | ): |
20
3737a78bb6c5
MqttConnectionOptionsDialog: added some validity checks and added the default value for 'keepalive' setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
18
diff
changeset
|
70 | enable = False |
92
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
86
diff
changeset
|
71 | EricMessageBox.critical( |
20
3737a78bb6c5
MqttConnectionOptionsDialog: added some validity checks and added the default value for 'keepalive' setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
18
diff
changeset
|
72 | self, |
3737a78bb6c5
MqttConnectionOptionsDialog: added some validity checks and added the default value for 'keepalive' setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
18
diff
changeset
|
73 | self.tr("Invalid Connection Parameters"), |
3737a78bb6c5
MqttConnectionOptionsDialog: added some validity checks and added the default value for 'keepalive' setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
18
diff
changeset
|
74 | self.tr("""An empty Client ID requires a clean session.""")) |
3737a78bb6c5
MqttConnectionOptionsDialog: added some validity checks and added the default value for 'keepalive' setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
18
diff
changeset
|
75 | else: |
3737a78bb6c5
MqttConnectionOptionsDialog: added some validity checks and added the default value for 'keepalive' setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
18
diff
changeset
|
76 | enable = True |
3737a78bb6c5
MqttConnectionOptionsDialog: added some validity checks and added the default value for 'keepalive' setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
18
diff
changeset
|
77 | |
92
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
86
diff
changeset
|
78 | self.buttonBox.button( |
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
86
diff
changeset
|
79 | QDialogButtonBox.StandardButton.Ok).setEnabled(enable) |
11
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
80 | |
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
81 | @pyqtSlot() |
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
82 | def on_generateIdButton_clicked(self): |
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
83 | """ |
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
84 | Private slot to generate a client ID. |
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
85 | """ |
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
86 | uuid = QUuid.createUuid() |
92
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
86
diff
changeset
|
87 | self.clientIdEdit.setText( |
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
86
diff
changeset
|
88 | uuid.toString(QUuid.StringFormat.WithoutBraces)) |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | |
103
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
90 | @pyqtSlot(str) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
91 | def on_clientIdEdit_textChanged(self, clientId): |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
92 | """ |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
93 | Private slot handling a change of the client ID string. |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
94 | |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
95 | @param clientId client ID |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
96 | @type str |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
97 | """ |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
98 | self.__updateOkButton() |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
99 | |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
100 | @pyqtSlot(bool) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
101 | def on_cleanSessionCheckBox_clicked(self, checked): |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
102 | """ |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
103 | Private slot to handle a change of the clean session selection. |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
104 | |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
105 | @param checked current state of the clean session selection |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
106 | @type bool |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
107 | """ |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
108 | self.__updateOkButton() |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
109 | |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
110 | @pyqtSlot(bool) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
111 | def on_mqttv5Button_toggled(self, checked): |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
112 | """ |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
113 | Private slot to handle the selection of the MQTT protocol. |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
114 | |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
115 | @param checked state of the button |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
116 | @type bool |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
117 | """ |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
118 | self.optionsWidget.setTabEnabled( |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
119 | self.optionsWidget.indexOf(self.propertiesTab), |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
120 | checked |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
121 | ) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
122 | # TODO: add code to enable the WILL properties button |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
123 | |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | @pyqtSlot(QAbstractButton) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | def on_buttonBox_clicked(self, button): |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | Private slot to handle the press of a button box button. |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | @param button button that has been pressed |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | @type QAbstractButton |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | """ |
92
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
86
diff
changeset
|
132 | if button == self.buttonBox.button( |
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
86
diff
changeset
|
133 | QDialogButtonBox.StandardButton.RestoreDefaults |
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
86
diff
changeset
|
134 | ): |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | self.__populateDefaults(options=None) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | |
103
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
137 | @pyqtSlot(bool) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
138 | def on_samePropertiesCheckBox_toggled(self, checked): |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
139 | """ |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
140 | Private slot to handle a change of the properties usage. |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
141 | |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
142 | @param checked flag indicating to use the same user properties for |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
143 | CONNECT and DISCONNECT |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
144 | @type bool |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
145 | """ |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
146 | if checked and not self.connectPropertiesButton.isChecked(): |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
147 | self.connectPropertiesButton.click() |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
148 | self.disconnectPropertiesButton.setEnabled(not checked) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
149 | |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
150 | @pyqtSlot(bool) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
151 | def __propertiesTypeSelected(self, checked): |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
152 | """ |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
153 | Private slot to handle the switching of the user properties type. |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
154 | |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
155 | @param checked state of the buttons |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
156 | @type bool |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
157 | """ |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
158 | if checked: |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
159 | # handle the selection only |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
160 | if self.connectPropertiesButton.isChecked(): |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
161 | self.__userProperties["disconnect"] = ( |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
162 | self.propertiesWidget.getProperties()) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
163 | self.propertiesWidget.setProperties( |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
164 | self.__userProperties["connect"]) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
165 | else: |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
166 | self.__userProperties["connect"] = ( |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
167 | self.propertiesWidget.getProperties()) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
168 | self.propertiesWidget.setProperties( |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
169 | self.__userProperties["disconnect"]) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
170 | |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | def __populateDefaults(self, options=None): |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | Private method to populate the dialog. |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | If no options dictionary is given, the dialog will be populated with |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | default values. |
11
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
177 | |
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
178 | @param options dictionary containing the connection options to populate |
103
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
179 | the dialog with. It must have the keys "ClientId", "Protocol", |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
180 | "ConnectionTimeout", "Keepalive", "CleanSession", "Username", |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
181 | "Password", "WillTopic", "WillMessage", "WillQos", "WillRetain", |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
182 | "TlsEnable", "TlsCaCert", "UserProperties". |
11
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
183 | @type dict |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | if options is None: |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
186 | options = MqttClient.defaultConnectionOptions() |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | # general |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | self.clientIdEdit.setText(options["ClientId"]) |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
190 | self.mqttv31Button.setChecked( |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
191 | options["Protocol"] == MqttProtocols.MQTTv31) |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
192 | self.mqttv311Button.setChecked( |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
193 | options["Protocol"] == MqttProtocols.MQTTv311) |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
194 | self.mqttv5Button.setChecked( |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
195 | options["Protocol"] == MqttProtocols.MQTTv5) |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
196 | self.connectionTimeoutSpinBox.setValue(options["ConnectionTimeout"]) |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | self.keepaliveSpinBox.setValue(options["Keepalive"]) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | self.cleanSessionCheckBox.setChecked(options["CleanSession"]) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | # user credentials |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | self.usernameEdit.setText(options["Username"]) |
22
545979c7dcd4
MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
20
diff
changeset
|
202 | self.passwordEdit.setText(pwConvert(options["Password"], encode=False)) |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | # last will and testament |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | self.willQosSpinBox.setValue(options["WillQos"]) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | self.willRetainCheckBox.setChecked(options["WillRetain"]) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | self.willTopicEdit.setText(options["WillTopic"]) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | self.willMessageEdit.setPlainText(options["WillMessage"]) |
25
01d44a4decf5
MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
209 | |
01d44a4decf5
MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
210 | # TLS parameters |
01d44a4decf5
MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
211 | self.tlsEnableCheckBox.setChecked(options["TlsEnable"]) |
01d44a4decf5
MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
212 | self.tlsCertsFilePicker.setText(options["TlsCaCert"]) |
103
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
213 | |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
214 | # user properties |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
215 | self.__userProperties = copy.deepcopy( |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
216 | options.get("UserProperties", {})) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
217 | if not self.__userProperties: |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
218 | self.__userProperties = { |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
219 | "connect": [], |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
220 | "disconnect": [], |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
221 | "use_connect": True, |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
222 | } |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
223 | |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
224 | if options["Protocol"] == MqttProtocols.MQTTv5: |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
225 | self.connectPropertiesButton.setChecked(True) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
226 | self.propertiesWidget.setProperties( |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
227 | self.__userProperties["connect"]) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
228 | self.samePropertiesCheckBox.setChecked( |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
229 | self.__userProperties["use_connect"]) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
230 | self.disconnectPropertiesButton.setEnabled( |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
231 | not self.__userProperties["use_connect"]) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
232 | else: |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
233 | self.propertiesWidget.clear() |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | def getConnectionOptions(self): |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | Public method get the entered connection options. |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | @return dictionary containing the connection options. It has the keys |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
240 | "ClientId", "Protocol", "ConnectionTimeout", "Keepalive", |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
241 | "CleanSession", "Username", "Password", "WillTopic", "WillMessage", |
103
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
242 | "WillQos", "WillRetain", "TlsEnable", "TlsCaCert", |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
243 | "UserProperties". |
92
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
86
diff
changeset
|
244 | @rtype dict |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | """ |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
246 | if self.mqttv31Button.isChecked(): |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
247 | protocol = MqttProtocols.MQTTv31 |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
248 | elif self.mqttv311Button.isChecked(): |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
249 | protocol = MqttProtocols.MQTTv311 |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
250 | elif self.mqttv5Button.isChecked(): |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
251 | protocol = MqttProtocols.MQTTv5 |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
252 | else: |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
253 | protocol = MqttProtocols.MQTTv311 |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
254 | |
103
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
255 | if protocol == MqttProtocols.MQTTv5: |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
256 | if self.connectPropertiesButton.isChecked(): |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
257 | self.__userProperties["connect"] = ( |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
258 | self.propertiesWidget.getProperties()) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
259 | else: |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
260 | self.__userProperties["disconnect"] = ( |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
261 | self.propertiesWidget.getProperties()) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
262 | self.__userProperties["use_connect"] = ( |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
263 | self.samePropertiesCheckBox.isChecked()) |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
264 | else: |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
265 | self.__userProperties = {} |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
266 | |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | return { |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | "ClientId": self.clientIdEdit.text(), |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
92
diff
changeset
|
269 | "Protocol": protocol, |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
270 | "ConnectionTimeout": self.connectionTimeoutSpinBox.value(), |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | "Keepalive": self.keepaliveSpinBox.value(), |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | "CleanSession": self.cleanSessionCheckBox.isChecked(), |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | "Username": self.usernameEdit.text(), |
22
545979c7dcd4
MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
20
diff
changeset
|
274 | "Password": pwConvert(self.passwordEdit.text(), encode=True), |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | "WillTopic": self.willTopicEdit.text(), |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | "WillMessage": self.willMessageEdit.toPlainText(), |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | "WillQos": self.willQosSpinBox.value(), |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | "WillRetain": self.willRetainCheckBox.isChecked(), |
25
01d44a4decf5
MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
279 | "TlsEnable": self.tlsEnableCheckBox.isChecked(), |
103
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
280 | "TlsCaCert": self.tlsCertsFilePicker.text(), |
5fe4f179975f
Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
281 | "UserProperties": copy.deepcopy(self.__userProperties), |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | } |