MqttMonitor/MqttConnectionProfilesDialog.py

Fri, 19 Apr 2024 15:15:01 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 19 Apr 2024 15:15:01 +0200
branch
eric7
changeset 143
51bc5bcc672a
parent 140
853ffd248dda
child 151
f9830d91be9a
permissions
-rw-r--r--

Modified the plugin for 'paho-mqtt' >=2.0.0.

17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
139
b7ca79939cc7 Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
3 # Copyright (c) 2018 - 2024 Detlev Offenbach <detlev@die-offenbachs.de>
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to edit the MQTT connection profiles.
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
10 import collections
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
11 import copy
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
12
129
9d54bf366323 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
13 from PyQt6.QtCore import Qt, QUuid, pyqtSlot
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
14 from PyQt6.QtWidgets import (
129
9d54bf366323 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
15 QAbstractButton,
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
16 QDialog,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
17 QDialogButtonBox,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
18 QInputDialog,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
19 QLineEdit,
129
9d54bf366323 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
20 QListWidgetItem,
78
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
21 )
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
22
127
8982ef7b7d67 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 123
diff changeset
23 try:
8982ef7b7d67 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 123
diff changeset
24 from eric7.EricGui import EricPixmapCache
8982ef7b7d67 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 123
diff changeset
25 except ImportError:
8982ef7b7d67 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 123
diff changeset
26 from UI import PixmapCache as EricPixmapCache
129
9d54bf366323 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
27
127
8982ef7b7d67 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 123
diff changeset
28 from eric7.EricWidgets import EricMessageBox
8982ef7b7d67 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 123
diff changeset
29 from eric7.EricWidgets.EricPathPicker import EricPathPickerModes
8982ef7b7d67 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 123
diff changeset
30 from eric7.Utilities.crypto import pwConvert
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31
105
36ec7431ad04 Made the default MQTT protocol a configuration item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
32 from .MqttClient import MqttClient
36ec7431ad04 Made the default MQTT protocol a configuration item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
33 from .MqttProtocols import MqttProtocols
129
9d54bf366323 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
34 from .Ui_MqttConnectionProfilesDialog import Ui_MqttConnectionProfilesDialog
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
35
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 class MqttConnectionProfilesDialog(QDialog, Ui_MqttConnectionProfilesDialog):
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 Class implementing a dialog to edit the MQTT connection profiles.
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
41
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
42 def __init__(self, profiles, currentProfile="", parent=None):
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 Constructor
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
45
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
46 @param profiles dictionary containing dictionaries containing the
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
47 connection parameters. Each entry must have the keys
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
48 "BrokerAddress", "BrokerPort", "ClientId", "Protocol",
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
49 "ConnectionTimeout", "Keepalive", "CleanSession", "Username",
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
50 "Password", "WillTopic", "WillMessage", "WillQos", "WillRetain",
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
51 "WillProperties", "TlsEnable", "TlsCaCert", "TlsClientCert",
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
52 "TlsClientKey", "UserProperties".
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
53 @type dict
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
54 @param currentProfile name of the currently selected profile
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
55 @type str
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 @param parent reference to the parent widget
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 @type QWidget
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 """
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
59 super().__init__(parent)
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.setupUi(self)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
61
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
62 self.__profiles = collections.defaultdict(self.__defaultProfile)
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
63 self.__profiles.update(copy.deepcopy(profiles))
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
64 self.__profilesChanged = False
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
65
127
8982ef7b7d67 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 123
diff changeset
66 self.plusButton.setIcon(EricPixmapCache.getIcon("plus"))
8982ef7b7d67 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 123
diff changeset
67 self.copyButton.setIcon(EricPixmapCache.getIcon("editCopy"))
8982ef7b7d67 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 123
diff changeset
68 self.minusButton.setIcon(EricPixmapCache.getIcon("minus"))
8982ef7b7d67 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 123
diff changeset
69 self.showPasswordButton.setIcon(EricPixmapCache.getIcon("showPassword"))
8982ef7b7d67 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 123
diff changeset
70 self.willPropertiesButton.setIcon(EricPixmapCache.getIcon("listSelection"))
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
71
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
72 self.tlsCertsFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
73 self.tlsCertsFilePicker.setFilters(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
74 self.tr("Certificate Files (*.crt *.pem);;All Files (*)")
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
75 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
76 self.tlsSelfSignedCertsFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
77 self.tlsSelfSignedCertsFilePicker.setFilters(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
78 self.tr("Certificate Files (*.crt *.pem);;All Files (*)")
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
79 )
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
80 self.tlsSelfSignedClientCertFilePicker.setMode(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
81 EricPathPickerModes.OPEN_FILE_MODE
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
82 )
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
83 self.tlsSelfSignedClientCertFilePicker.setFilters(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
84 self.tr("Certificate Files (*.crt *.pem);;All Files (*)")
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
85 )
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
86 self.tlsSelfSignedClientKeyFilePicker.setMode(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
87 EricPathPickerModes.OPEN_FILE_MODE
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
88 )
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
89 self.tlsSelfSignedClientKeyFilePicker.setFilters(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
90 self.tr("Key Files (*.key *.pem);;All Files (*)")
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
91 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
92
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
93 self.profileTabWidget.setCurrentIndex(0)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
94
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
95 self.connectPropertiesButton.clicked[bool].connect(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
96 self.__propertiesTypeSelected
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
97 )
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
98 self.disconnectPropertiesButton.clicked[bool].connect(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
99 self.__propertiesTypeSelected
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
100 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
101
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
102 if len(self.__profiles) == 0:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
103 self.minusButton.setEnabled(False)
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
104 self.copyButton.setEnabled(False)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
105
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
106 self.profileFrame.setEnabled(False)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
107 self.__populatingProfile = False
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
108 self.__deletingProfile = False
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
109
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
110 self.__populateProfilesList(currentProfile=currentProfile)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
111
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 @pyqtSlot(str)
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
113 def on_profileEdit_textChanged(self, name):
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
115 Private slot to handle changes of the profile name.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
116
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
117 @param name name of the profile
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 @type str
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
120 self.__updateApplyButton()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
121
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 @pyqtSlot(QAbstractButton)
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 def on_profileButtonBox_clicked(self, button):
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
125 Private slot handling presses of the profile buttons.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
126
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
127 @param button reference to the pressed button
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 @type QAbstractButton
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 """
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
130 if button == self.profileButtonBox.button(
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
131 QDialogButtonBox.StandardButton.Apply
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
132 ):
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
133 currentProfile = self.__applyProfile()
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
134 self.__populateProfilesList(currentProfile=currentProfile)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
135
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
136 elif button == self.profileButtonBox.button(
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
137 QDialogButtonBox.StandardButton.Reset
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
138 ):
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
139 self.__resetProfile()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
140
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
141 elif button == self.profileButtonBox.button(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
142 QDialogButtonBox.StandardButton.RestoreDefaults
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
143 ):
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
144 self.__populateProfileDefault()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
145
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 @pyqtSlot(QListWidgetItem, QListWidgetItem)
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 def on_profilesList_currentItemChanged(self, current, previous):
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
149 Private slot to handle a change of the current profile.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
150
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
151 @param current new current item
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 @type QListWidgetItem
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
153 @param previous previous current item
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 @type QListWidgetItem
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
156 self.minusButton.setEnabled(current is not None)
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
157 self.copyButton.setEnabled(current is not None)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
158
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
159 if (
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
160 current is not previous
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
161 and not self.__deletingProfile
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
162 and self.__isChangedProfile()
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
163 ):
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
164 # modified profile belongs to previous
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
165 yes = EricMessageBox.yesNo(
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
166 self,
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
167 self.tr("Changed Connection Profile"),
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
168 self.tr(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
169 """The current profile has unsaved changes."""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
170 """ Shall these be saved?"""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
171 ),
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
172 icon=EricMessageBox.Warning,
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
173 yesDefault=True,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
174 )
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
175 if yes:
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
176 self.__applyProfile()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
177
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
178 if current:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
179 profileName = current.text()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
180 self.__populateProfile(profileName)
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
181 else:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
182 self.__clearProfile()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
183
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 @pyqtSlot()
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 def on_plusButton_clicked(self):
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
187 Private slot to add a new empty profile entry.
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
189 profileName, ok = QInputDialog.getText(
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
190 self,
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
191 self.tr("New Connection Profile"),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
192 self.tr("Enter name for the new Connection Profile:"),
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
193 QLineEdit.EchoMode.Normal,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
194 )
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
195 if ok and bool(profileName):
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
196 if profileName in self.__profiles:
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
197 EricMessageBox.warning(
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
198 self,
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
199 self.tr("New Connection Profile"),
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
200 self.tr(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
201 """<p>A connection named <b>{0}</b> exists"""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
202 """ already. Aborting...</p>"""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
203 ).format(profileName),
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
204 )
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
205 else:
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
206 itm = QListWidgetItem(profileName, self.profilesList)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
207 self.profilesList.setCurrentItem(itm)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
208 self.brokerAddressEdit.setFocus(Qt.FocusReason.OtherFocusReason)
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
209
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
210 @pyqtSlot()
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
211 def on_copyButton_clicked(self):
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
212 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
213 Private slot to copy the selected profile entry.
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
214 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
215 itm = self.profilesList.currentItem()
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
216 if itm:
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
217 profileName = itm.text()
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
218 newProfileName, ok = QInputDialog.getText(
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
219 self,
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
220 self.tr("Copy Connection Profile"),
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
221 self.tr("Enter name for the copied Connection Profile:"),
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
222 QLineEdit.EchoMode.Normal,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
223 )
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
224 if ok and bool(newProfileName):
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
225 if newProfileName in self.__profiles:
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
226 EricMessageBox.warning(
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
227 self,
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
228 self.tr("Copy Connection Profile"),
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
229 self.tr(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
230 """<p>A connection named <b>{0}</b> exists"""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
231 """ already. Aborting...</p>"""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
232 ).format(newProfileName),
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
233 )
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
234 else:
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
235 connectionProfile = self.__defaultProfile()
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
236 connectionProfile.update(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
237 copy.deepcopy(self.__profiles[profileName])
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
238 )
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
239 self.__profiles[newProfileName] = connectionProfile
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
240 self.__profilesChanged = True
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
241
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
242 itm = QListWidgetItem(newProfileName, self.profilesList)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
243 self.profilesList.setCurrentItem(itm)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
244 self.brokerAddressEdit.setFocus(Qt.FocusReason.OtherFocusReason)
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
245
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 @pyqtSlot()
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 def on_minusButton_clicked(self):
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
249 Private slot to delete the selected entry.
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
250 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
251 itm = self.profilesList.currentItem()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
252 if itm:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
253 profileName = itm.text()
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
254 yes = EricMessageBox.yesNo(
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
255 self,
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
256 self.tr("Delete Connection Profile"),
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
257 self.tr(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
258 """<p>Shall the Connection Profile <b>{0}</b>"""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
259 """ really be deleted?</p>"""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
260 ).format(profileName),
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
261 )
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
262 if yes:
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
263 self.__deletingProfile = True
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
264 del self.__profiles[profileName]
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
265 self.__profilesChanged = True
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
266 self.__populateProfilesList()
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
267 self.__deletingProfile = False
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
268
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
269 self.profilesList.setFocus(Qt.FocusReason.OtherFocusReason)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
270
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
271 def getProfiles(self):
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
272 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
273 Public method to return a dictionary of profiles.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
274
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
275 @return dictionary containing dictionaries containing the defined
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
276 connection profiles. Each entry has the keys "BrokerAddress",
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
277 "BrokerPort", "ClientId", "Protocol", "ConnectionTimeout",
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
278 "Keepalive", "CleanSession", "Username", "Password", "WillTopic",
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
279 "WillMessage", "WillQos", "WillRetain", "WillProperties",
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
280 "TlsEnable", "TlsCaCert", "TlsClientCert", "TlsClientKey",
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
281 "UserProperties".
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
282 @rtype dict
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
283 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
284 profilesDict = {}
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
285 profilesDict.update(copy.deepcopy(dict(self.__profiles)))
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
286 return profilesDict
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
287
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
288 def __applyProfile(self):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
289 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
290 Private method to apply the entered data to the list of profiles.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
291
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
292 @return name of the applied profile
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
293 @rtype str
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
294 """
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
295 if self.mqttv31Button.isChecked():
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
296 protocol = MqttProtocols.MQTTv31
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
297 elif self.mqttv311Button.isChecked():
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
298 protocol = MqttProtocols.MQTTv311
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
299 elif self.mqttv5Button.isChecked():
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
300 protocol = MqttProtocols.MQTTv5
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
301 else:
105
36ec7431ad04 Made the default MQTT protocol a configuration item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
302 # should never happen
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
303 protocol = MqttProtocols.MQTTv311
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
304
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
305 if protocol == MqttProtocols.MQTTv5:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
306 if self.connectPropertiesButton.isChecked():
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
307 self.__userProperties["connect"] = self.propertiesWidget.getProperties()
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
308 else:
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
309 self.__userProperties["disconnect"] = (
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
310 self.propertiesWidget.getProperties()
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
311 )
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
312 self.__userProperties["use_connect"] = (
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
313 self.samePropertiesCheckBox.isChecked()
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
314 )
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
315 else:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
316 self.__userProperties = {}
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
317 self.__willProperties = []
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
318
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
319 profileName = self.profileEdit.text()
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
320 connectionProfile = {
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
321 "BrokerAddress": self.brokerAddressEdit.text(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
322 "BrokerPort": self.brokerPortSpinBox.value(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
323 "ClientId": self.clientIdEdit.text(),
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
324 "Protocol": protocol,
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
325 "ConnectionTimeout": self.connectionTimeoutSpinBox.value(),
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
326 "Keepalive": self.keepaliveSpinBox.value(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
327 "CleanSession": self.cleanSessionCheckBox.isChecked(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
328 "Username": self.usernameEdit.text(),
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
329 "Password": pwConvert(self.passwordEdit.text(), encode=True),
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
330 "WillTopic": self.willTopicEdit.text(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
331 "WillMessage": self.willMessageEdit.toPlainText(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
332 "WillQos": self.willQosSpinBox.value(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
333 "WillRetain": self.willRetainCheckBox.isChecked(),
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
334 "WillProperties": copy.deepcopy(self.__willProperties),
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
335 "TlsEnable": self.tlsGroupBox.isChecked(),
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
336 "TlsCaCert": "",
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
337 "TlsClientCert": "",
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
338 "TlsClientKey": "",
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
339 "UserProperties": copy.deepcopy(self.__userProperties),
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
340 }
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
341 if connectionProfile["TlsEnable"]:
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
342 if self.tlsCertsFileButton.isChecked():
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
343 connectionProfile["TlsCaCert"] = self.tlsCertsFilePicker.text()
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
344 elif self.tlsSelfSignedCertsButton.isChecked():
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
345 connectionProfile["TlsCaCert"] = (
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
346 self.tlsSelfSignedCertsFilePicker.text()
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
347 )
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
348 connectionProfile["TlsClientCert"] = (
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
349 self.tlsSelfSignedClientCertFilePicker.text()
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
350 )
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
351 connectionProfile["TlsClientKey"] = (
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
352 self.tlsSelfSignedClientKeyFilePicker.text()
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
353 )
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
354
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
355 self.__profiles[profileName] = connectionProfile
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
356 self.__profilesChanged = True
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
357
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
358 return profileName
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
359
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
360 def __defaultProfile(self):
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
361 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
362 Private method to populate non-existing profile items.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
363
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
364 @return default dictionary entry
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
365 @rtype dict
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
366 """
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
367 defaultProfile = MqttClient.defaultConnectionOptions()
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
368 defaultProfile["BrokerAddress"] = ""
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
369 if defaultProfile["TlsEnable"]:
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
370 defaultProfile["BrokerPort"] = 8883
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
371 else:
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
372 defaultProfile["BrokerPort"] = 1883
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
373
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
374 return defaultProfile
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
375
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
376 def __populateProfilesList(self, currentProfile=""):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
377 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
378 Private method to populate the list of defined profiles.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
379
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
380 @param currentProfile name of the current profile
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
381 @type str
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
382 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
383 if not currentProfile:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
384 currentItem = self.profilesList.currentItem()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
385 if currentItem:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
386 currentProfile = currentItem.text()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
387
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
388 self.profilesList.clear()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
389 self.profilesList.addItems(sorted(self.__profiles.keys()))
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
390
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
391 if currentProfile:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
392 items = self.profilesList.findItems(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
393 currentProfile, Qt.MatchFlag.MatchExactly
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
394 )
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
395 if items:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
396 self.profilesList.setCurrentItem(items[0])
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
397
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
398 if len(self.__profiles) == 0:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
399 self.profileFrame.setEnabled(False)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
400
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
401 def __populateProfile(self, profileName):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
402 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
403 Private method to populate the profile data entry fields.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
404
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
405 @param profileName name of the profile to get data from
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
406 @type str
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
407 """
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
408 connectionProfile = self.__defaultProfile()
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
409 if profileName:
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
410 connectionProfile.update(self.__profiles[profileName])
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
411
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
412 self.__populatingProfile = True
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
413 if profileName is not None:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
414 self.profileEdit.setText(profileName)
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
415 self.brokerAddressEdit.setText(connectionProfile["BrokerAddress"])
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
416 self.brokerPortSpinBox.setValue(connectionProfile["BrokerPort"])
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
417 self.clientIdEdit.setText(connectionProfile["ClientId"])
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
418
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
419 # general tab
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
420 self.mqttv31Button.setChecked(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
421 connectionProfile["Protocol"] == MqttProtocols.MQTTv31
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
422 )
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
423 self.mqttv311Button.setChecked(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
424 connectionProfile["Protocol"] == MqttProtocols.MQTTv311
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
425 )
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
426 self.mqttv5Button.setChecked(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
427 connectionProfile["Protocol"] == MqttProtocols.MQTTv5
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
428 )
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
429 self.on_mqttv5Button_toggled(self.mqttv5Button.isChecked())
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
430 self.connectionTimeoutSpinBox.setValue(connectionProfile["ConnectionTimeout"])
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
431 self.keepaliveSpinBox.setValue(connectionProfile["Keepalive"])
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
432 self.cleanSessionCheckBox.setChecked(connectionProfile["CleanSession"])
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
433
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
434 # user credentials tab
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
435 self.usernameEdit.setText(connectionProfile["Username"])
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
436 self.passwordEdit.setText(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
437 pwConvert(connectionProfile["Password"], encode=False)
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
438 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
439
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
440 # will tab
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
441 self.willTopicEdit.setText(connectionProfile["WillTopic"])
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
442 self.willMessageEdit.setPlainText(connectionProfile["WillMessage"])
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
443 self.willQosSpinBox.setValue(connectionProfile["WillQos"])
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
444 self.willRetainCheckBox.setChecked(connectionProfile["WillRetain"])
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
445 self.__willProperties = copy.deepcopy(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
446 connectionProfile.get("WillProperties", [])
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
447 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
448
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
449 # SSL/TLS tab
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
450 self.tlsGroupBox.setChecked(connectionProfile["TlsEnable"])
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
451 if connectionProfile["TlsCaCert"] and connectionProfile["TlsClientCert"]:
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
452 self.tlsSelfSignedCertsButton.setChecked(True)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
453 self.tlsSelfSignedCertsFilePicker.setText(connectionProfile["TlsCaCert"])
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
454 self.tlsSelfSignedClientCertFilePicker.setText(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
455 connectionProfile["TlsClientCert"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
456 )
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
457 self.tlsSelfSignedClientKeyFilePicker.setText(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
458 connectionProfile["TlsClientKey"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
459 )
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
460 elif connectionProfile["TlsCaCert"]:
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
461 self.tlsCertsFileButton.setChecked(True)
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
462 self.tlsCertsFilePicker.setText(connectionProfile["TlsCaCert"])
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
463 else:
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
464 self.tlsDefaultCertsButton.setChecked(True)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
465
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
466 # user properties tab
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
467 self.__userProperties = copy.deepcopy(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
468 connectionProfile.get("UserProperties", {})
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
469 )
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
470 if not self.__userProperties:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
471 self.__userProperties = {
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
472 "connect": [],
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
473 "disconnect": [],
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
474 "use_connect": True,
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
475 }
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
476
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
477 if connectionProfile["Protocol"] == MqttProtocols.MQTTv5:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
478 self.connectPropertiesButton.setChecked(True)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
479 self.propertiesWidget.setProperties(self.__userProperties["connect"])
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
480 self.samePropertiesCheckBox.setChecked(self.__userProperties["use_connect"])
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
481 self.disconnectPropertiesButton.setEnabled(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
482 not self.__userProperties["use_connect"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
483 )
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
484 else:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
485 self.propertiesWidget.clear()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
486
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
487 self.__populatingProfile = False
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
488
95
d830314cca87 Fixed a few bugs and added a button to show the user password.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 92
diff changeset
489 self.showPasswordButton.setChecked(False)
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
490 self.profileFrame.setEnabled(True)
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
491 self.__updateApplyButton()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
492
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
493 self.profileTabWidget.setCurrentIndex(0)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
494
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
495 def __clearProfile(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
496 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
497 Private method to clear the profile data entry fields.
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
498 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
499 self.__populatingProfile = True
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
500 self.profileEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
501 self.brokerAddressEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
502 self.brokerPortSpinBox.setValue(1883)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
503 self.clientIdEdit.setText("")
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
504 self.mqttv311Button.setChecked(True)
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
505 self.keepaliveSpinBox.setValue(60)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
506 self.cleanSessionCheckBox.setChecked(True)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
507 self.usernameEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
508 self.passwordEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
509 self.willTopicEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
510 self.willMessageEdit.setPlainText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
511 self.willQosSpinBox.setValue(0)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
512 self.willRetainCheckBox.setChecked(False)
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
513 self.__willProperties = []
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
514 self.tlsGroupBox.setChecked(False)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
515 self.tlsDefaultCertsButton.setChecked(True)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
516 self.tlsCertsFileButton.setChecked(True)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
517 self.tlsCertsFilePicker.setText("")
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
518 self.tlsSelfSignedCertsButton.setChecked(False)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
519 self.tlsSelfSignedCertsFilePicker.setText("")
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
520 self.tlsSelfSignedClientCertFilePicker.setText("")
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
521 self.tlsSelfSignedClientKeyFilePicker.setText("")
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
522
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
523 self.__userProperties = {
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
524 "connect": [],
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
525 "disconnect": [],
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
526 "use_connect": True,
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
527 }
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
528 self.propertiesWidget.clear()
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
529 self.samePropertiesCheckBox.setChecked(True)
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
530 self.connectPropertiesButton.setChecked(True)
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
531 self.disconnectPropertiesButton.setEnabled(False)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
532
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
533 self.__populatingProfile = False
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
534
95
d830314cca87 Fixed a few bugs and added a button to show the user password.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 92
diff changeset
535 self.showPasswordButton.setChecked(False)
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
536 self.profileFrame.setEnabled(False)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
537 self.__updateApplyButton()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
538
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
539 def __resetProfile(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
540 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
541 Private method to reset the profile data entry fields to their stored
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
542 values.
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
543 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
544 profileName = self.profileEdit.text()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
545 if profileName in self.__profiles:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
546 self.__populateProfile(profileName)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
547
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
548 def __populateProfileDefault(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
549 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
550 Private method to populate the profile data entry fields with default
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
551 profile values.
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
552 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
553 self.__populateProfile(None)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
554
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
555 def __isChangedProfile(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
556 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
557 Private method to check, if the currently shown profile contains some
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
558 changed data.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
559
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
560 @return flag indicating changed data
37
8bc357057af3 Updated source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
561 @rtype bool
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
562 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
563 profileName = self.profileEdit.text()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
564 if profileName == "":
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
565 return False
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
566
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
567 elif profileName in self.__profiles:
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
568 if self.mqttv31Button.isChecked():
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
569 protocol = MqttProtocols.MQTTv31
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
570 elif self.mqttv311Button.isChecked():
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
571 protocol = MqttProtocols.MQTTv311
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
572 elif self.mqttv5Button.isChecked():
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
573 protocol = MqttProtocols.MQTTv5
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
574 else:
105
36ec7431ad04 Made the default MQTT protocol a configuration item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
575 # should never happen
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
576 protocol = MqttProtocols.MQTTv311
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
577
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
578 connectionProfile = self.__defaultProfile()
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
579 connectionProfile.update(self.__profiles[profileName])
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
580 changed = (
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
581 self.brokerAddressEdit.text() != connectionProfile["BrokerAddress"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
582 or self.brokerPortSpinBox.value() != connectionProfile["BrokerPort"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
583 or self.clientIdEdit.text() != connectionProfile["ClientId"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
584 or protocol != connectionProfile["Protocol"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
585 or self.connectionTimeoutSpinBox.value()
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
586 != connectionProfile["ConnectionTimeout"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
587 or self.keepaliveSpinBox.value() != connectionProfile["Keepalive"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
588 or self.cleanSessionCheckBox.isChecked()
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
589 != connectionProfile["CleanSession"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
590 or self.usernameEdit.text() != connectionProfile["Username"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
591 or self.passwordEdit.text()
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
592 != pwConvert(connectionProfile["Password"], encode=False)
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
593 or self.willTopicEdit.text() != connectionProfile["WillTopic"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
594 or self.willMessageEdit.toPlainText()
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
595 != connectionProfile["WillMessage"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
596 or self.willQosSpinBox.value() != connectionProfile["WillQos"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
597 or self.willRetainCheckBox.isChecked()
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
598 != connectionProfile["WillRetain"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
599 or self.tlsGroupBox.isChecked() != connectionProfile["TlsEnable"]
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
600 )
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
601 # check will properties only, ig not yet changed
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
602 if not changed and protocol == MqttProtocols.MQTTv5:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
603 changed |= sorted(self.__willProperties) != sorted(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
604 connectionProfile["WillProperties"]
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
605 )
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
606 # check TLS stuff only, if not yet changed
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
607 if not changed:
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
608 if self.tlsCertsFileButton.isChecked():
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
609 changed |= (
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
610 self.tlsCertsFilePicker.text() != connectionProfile["TlsCaCert"]
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
611 )
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
612 elif self.tlsSelfSignedCertsButton.isChecked():
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
613 changed |= (
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
614 self.tlsSelfSignedCertsFilePicker.text()
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
615 != connectionProfile["TlsCaCert"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
616 or self.tlsSelfSignedClientCertFilePicker.text()
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
617 != connectionProfile["TlsClientCert"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
618 or self.tlsSelfSignedClientKeyFilePicker.text()
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
619 != connectionProfile["TlsClientKey"]
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
620 )
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
621 # check user properties only, if not yet changed
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
622 if not changed and protocol == MqttProtocols.MQTTv5:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
623 properties = (
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
624 {
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
625 "connect": self.propertiesWidget.getProperties(),
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
626 "disconnect": self.__userProperties["disconnect"],
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
627 }
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
628 if self.connectPropertiesButton.isChecked()
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
629 else {
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
630 "connect": self.__userProperties["connect"],
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
631 "disconnect": self.propertiesWidget.getProperties(),
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
632 }
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
633 )
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
634 changed |= (
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
635 self.samePropertiesCheckBox.isChecked()
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
636 != connectionProfile["UserProperties"]["use_connect"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
637 or sorted(properties["connect"])
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
638 != sorted(connectionProfile["UserProperties"]["connect"])
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
639 or sorted(properties["disconnect"])
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
640 != sorted(connectionProfile["UserProperties"]["disconnect"])
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
641 )
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
642
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
643 return changed
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
644
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
645 else:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
646 return True
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
647
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
648 def __updateApplyButton(self):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
649 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
650 Private method to set the state of the Apply button.
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
651 """
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
652 # condition 1: profile name and broker address need to be given
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
653 enable = bool(self.profileEdit.text()) and bool(self.brokerAddressEdit.text())
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
654
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
655 # condition 2: if client ID is empty, clean session must be selected
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
656 if (
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
657 not self.__populatingProfile
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
658 and self.clientIdEdit.text() == ""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
659 and not self.cleanSessionCheckBox.isChecked()
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
660 ):
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
661 enable = False
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
662 EricMessageBox.critical(
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
663 self,
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
664 self.tr("Invalid Connection Parameters"),
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
665 self.tr("An empty Client ID requires a clean session."),
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
666 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
667
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
668 if self.tlsGroupBox.isChecked():
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
669 if self.tlsCertsFileButton.isChecked():
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
670 # condition 3a: if CA certificates file shall be used, it must
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
671 # be given
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
672 enable &= bool(self.tlsCertsFilePicker.text())
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
673 elif self.tlsSelfSignedCertsButton.isChecked():
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
674 # condition 3b: if client certificates shall be used, all files
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
675 # must be given
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
676 enable &= (
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
677 bool(self.tlsSelfSignedCertsFilePicker.text())
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
678 and bool(self.tlsSelfSignedClientCertFilePicker.text())
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
679 and bool(self.tlsSelfSignedClientKeyFilePicker.text())
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
680 )
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
681
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
682 self.profileButtonBox.button(QDialogButtonBox.StandardButton.Apply).setEnabled(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
683 enable
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
684 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
685
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
686 @pyqtSlot(str)
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
687 def on_brokerAddressEdit_textChanged(self, address):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
688 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
689 Private slot handling a change of the broker address.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
690
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
691 @param address broker address
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
692 @type str
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
693 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
694 self.__updateApplyButton()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
695
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
696 @pyqtSlot()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
697 def on_generateIdButton_clicked(self):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
698 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
699 Private slot to generate a client ID.
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
700 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
701 uuid = QUuid.createUuid()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
702 self.clientIdEdit.setText(uuid.toString(QUuid.StringFormat.WithoutBraces))
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
703
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
704 @pyqtSlot(str)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
705 def on_clientIdEdit_textChanged(self, clientId):
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
706 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
707 Private slot handling a change of the client ID string.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
708
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
709 @param clientId client ID
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
710 @type str
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
711 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
712 self.__updateApplyButton()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
713
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
714 @pyqtSlot(bool)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
715 def on_cleanSessionCheckBox_clicked(self, checked):
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
716 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
717 Private slot to handle a change of the clean session selection.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
718
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
719 @param checked current state of the clean session selection
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
720 @type bool
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
721 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
722 self.__updateApplyButton()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
723
95
d830314cca87 Fixed a few bugs and added a button to show the user password.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 92
diff changeset
724 @pyqtSlot(bool)
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
725 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
726 """
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
727 Private slot to handle the selection of the MQTT protocol.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
728
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
729 @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
730 @type bool
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
731 """
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
732 self.profileTabWidget.setTabEnabled(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
733 self.profileTabWidget.indexOf(self.propertiesTab), checked
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
734 )
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
735 self.willPropertiesButton.setEnabled(checked)
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
736 self.willPropertiesButton.setVisible(checked)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
737
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
738 @pyqtSlot(bool)
95
d830314cca87 Fixed a few bugs and added a button to show the user password.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 92
diff changeset
739 def on_showPasswordButton_toggled(self, checked):
d830314cca87 Fixed a few bugs and added a button to show the user password.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 92
diff changeset
740 """
d830314cca87 Fixed a few bugs and added a button to show the user password.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 92
diff changeset
741 Private slot to show or hide the password.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
742
95
d830314cca87 Fixed a few bugs and added a button to show the user password.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 92
diff changeset
743 @param checked flag indicating the button state
d830314cca87 Fixed a few bugs and added a button to show the user password.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 92
diff changeset
744 @type bool
d830314cca87 Fixed a few bugs and added a button to show the user password.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 92
diff changeset
745 """
d830314cca87 Fixed a few bugs and added a button to show the user password.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 92
diff changeset
746 (
d830314cca87 Fixed a few bugs and added a button to show the user password.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 92
diff changeset
747 self.passwordEdit.setEchoMode(QLineEdit.EchoMode.Normal)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
748 if checked
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
749 else self.passwordEdit.setEchoMode(QLineEdit.EchoMode.Password)
95
d830314cca87 Fixed a few bugs and added a button to show the user password.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 92
diff changeset
750 )
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
751
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
752 @pyqtSlot()
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
753 def on_willPropertiesButton_clicked(self):
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
754 """
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
755 Private slot to edit the last will user properties.
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
756 """
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
757 from .MqttUserPropertiesEditor import MqttUserPropertiesEditorDialog
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
758
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
759 dlg = MqttUserPropertiesEditorDialog(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
760 self.tr("Last Will User Properties"), self.__willProperties, self
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
761 )
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
762 if dlg.exec() == QDialog.DialogCode.Accepted:
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
763 self.__willProperties = dlg.getProperties()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
764
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
765 @pyqtSlot(str)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
766 def on_tlsCertsFilePicker_textChanged(self, path):
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
767 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
768 Private slot handling a change of the TLS CA certificates file.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
769
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
770 @param path file path
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
771 @type str
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
772 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
773 self.__updateApplyButton()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
774
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
775 @pyqtSlot(str)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
776 def on_tlsSelfSignedCertsFilePicker_textChanged(self, path):
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
777 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
778 Private slot handling a change of the TLS CA certificates file.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
779
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
780 @param path file path
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
781 @type str
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
782 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
783 self.__updateApplyButton()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
784
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
785 @pyqtSlot(str)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
786 def on_tlsSelfSignedClientCertFilePicker_textChanged(self, path):
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
787 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
788 Private slot handling a change of the TLS client certificate file.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
789
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
790 @param path file path
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
791 @type str
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
792 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
793 self.__updateApplyButton()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
794
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
795 @pyqtSlot(str)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
796 def on_tlsSelfSignedClientKeyFilePicker_textChanged(self, path):
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
797 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
798 Private slot handling a change of the TLS client key file.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
799
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
800 @param path file path
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
801 @type str
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
802 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
803 self.__updateApplyButton()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
804
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
805 @pyqtSlot(bool)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
806 def on_tlsGroupBox_toggled(self, checked):
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
807 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
808 Private slot handling the selection of TLS mode.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
809
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
810 @param checked state of the selection
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
811 @type bool
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
812 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
813 if checked and self.brokerPortSpinBox.value() == 1883:
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
814 # port is still standard non-TLS port
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
815 yes = EricMessageBox.yesNo(
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
816 self,
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
817 self.tr("SSL/TLS Enabled"),
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
818 self.tr(
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
819 """Encrypted connection using SSL/TLS has been enabled."""
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
820 """ However, the broker port is still the default"""
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
821 """ unencrypted port (port 1883). Shall this be"""
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
822 """ changed?"""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
823 ),
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
824 icon=EricMessageBox.Warning,
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
825 yesDefault=True,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
826 )
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
827 if yes:
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
828 self.brokerPortSpinBox.setValue(8883)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
829 elif not checked and self.brokerPortSpinBox.value() == 8883:
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
830 # port is still standard TLS port
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
831 yes = EricMessageBox.yesNo(
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
832 self,
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
833 self.tr("SSL/TLS Disabled"),
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
834 self.tr(
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
835 """Encrypted connection using SSL/TLS has been disabled."""
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
836 """ However, the broker port is still the default"""
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
837 """ encrypted port (port 8883). Shall this be"""
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
838 """ changed?"""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
839 ),
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
840 icon=EricMessageBox.Warning,
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
841 yesDefault=True,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
842 )
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
843 if yes:
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
844 self.brokerPortSpinBox.setValue(1883)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
845
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
846 self.__updateApplyButton()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
847
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
848 @pyqtSlot(bool)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
849 def on_tlsDefaultCertsButton_toggled(self, checked):
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
850 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
851 Private slot handling the selection of using the default
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
852 certificates file.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
853
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
854 @param checked state of the selection
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
855 @type bool
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
856 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
857 self.__updateApplyButton()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
858
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
859 @pyqtSlot(bool)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
860 def on_tlsCertsFileButton_toggled(self, checked):
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
861 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
862 Private slot handling the selection of using a non-default
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
863 certificates file.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
864
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
865 @param checked state of the selection
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
866 @type bool
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
867 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
868 self.__updateApplyButton()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
869
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
870 @pyqtSlot(bool)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
871 def on_tlsSelfSignedCertsButton_toggled(self, checked):
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
872 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
873 Private slot handling the selection of using self signed
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
874 client certificate and key files.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
875
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
876 @param checked state of the selection
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
877 @type bool
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
878 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
879 self.__updateApplyButton()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
880
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
881 @pyqtSlot(bool)
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
882 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
883 """
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
884 Private slot to handle a change of the properties usage.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
885
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
886 @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
887 CONNECT and DISCONNECT
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
888 @type bool
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
889 """
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
890 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
891 self.connectPropertiesButton.click()
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
892 self.disconnectPropertiesButton.setEnabled(not checked)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
893
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
894 @pyqtSlot(bool)
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
895 def __propertiesTypeSelected(self, checked):
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
896 """
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
897 Private slot to handle the switching of the user properties type.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
898
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
899 @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
900 @type bool
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
901 """
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
902 if checked:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
903 # handle the selection only
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
904 if self.connectPropertiesButton.isChecked():
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
905 self.__userProperties["disconnect"] = (
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
906 self.propertiesWidget.getProperties()
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
907 )
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
908 self.propertiesWidget.setProperties(self.__userProperties["connect"])
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
909 else:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
910 self.__userProperties["connect"] = self.propertiesWidget.getProperties()
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
911 self.propertiesWidget.setProperties(self.__userProperties["disconnect"])
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
912
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
913 @pyqtSlot()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
914 def reject(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
915 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
916 Public slot to reject the dialog changes.
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
917 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
918 if self.__isChangedProfile():
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
919 button = EricMessageBox.warning(
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
920 self,
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
921 self.tr("Changed Connection Profile"),
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
922 self.tr(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
923 """The current profile has unsaved changes. Shall"""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
924 """ these be saved?"""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
925 ),
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
926 EricMessageBox.Discard | EricMessageBox.Save,
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
927 EricMessageBox.Save,
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
928 )
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
929 if button == EricMessageBox.Save:
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
930 self.__applyProfile()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
931 return
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
932
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
933 if self.__profilesChanged:
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
934 button = EricMessageBox.warning(
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
935 self,
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
936 self.tr("Changed Connection Profiles"),
140
853ffd248dda Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 139
diff changeset
937 self.tr("""The list of connection profiles has unsaved changes."""),
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
938 EricMessageBox.Abort | EricMessageBox.Discard | EricMessageBox.Save,
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
939 EricMessageBox.Save,
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
940 )
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
941 if button == EricMessageBox.Save:
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
942 super().accept()
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
943 return
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
944 elif button == EricMessageBox.Abort:
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
945 return
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
946
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
947 super().reject()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
948
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
949 @pyqtSlot()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
950 def accept(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
951 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
952 Public slot to accept the dialog.
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
953 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
954 if self.__isChangedProfile():
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
955 yes = EricMessageBox.yesNo(
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
956 self,
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
957 self.tr("Changed Connection Profile"),
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
958 self.tr(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
959 """The current profile has unsaved changes. Shall"""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
960 """ these be saved?"""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
961 ),
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
962 icon=EricMessageBox.Warning,
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
963 yesDefault=True,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
964 )
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
965 if yes:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
966 self.__applyProfile()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
967
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
968 super().accept()

eric ide

mercurial