MqttMonitor/MqttConnectionProfilesDialog.py

Wed, 21 Sep 2022 09:42:33 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 21 Sep 2022 09:42:33 +0200
branch
eric7
changeset 123
3d7e63ed4fd1
parent 114
8c0e9e602124
child 127
8982ef7b7d67
permissions
-rw-r--r--

Performed some code refactoring and reformatted the source code with 'Black'

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
114
8c0e9e602124 Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 105
diff changeset
3 # Copyright (c) 2018 - 2022 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
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
13 from PyQt6.QtCore import pyqtSlot, Qt, QUuid
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
14 from PyQt6.QtWidgets import (
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
15 QDialog,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
16 QDialogButtonBox,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
17 QAbstractButton,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
18 QListWidgetItem,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
19 QInputDialog,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
20 QLineEdit,
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
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
23 from EricWidgets import EricMessageBox
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
24 from EricWidgets.EricPathPicker import EricPathPickerModes
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 from .Ui_MqttConnectionProfilesDialog import Ui_MqttConnectionProfilesDialog
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
105
36ec7431ad04 Made the default MQTT protocol a configuration item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
28 from .MqttClient import MqttClient
36ec7431ad04 Made the default MQTT protocol a configuration item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
29 from .MqttProtocols import MqttProtocols
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
30
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
31 import UI.PixmapCache
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
32 from Utilities.crypto import pwConvert
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
33
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 class MqttConnectionProfilesDialog(QDialog, Ui_MqttConnectionProfilesDialog):
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 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
38 """
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
39
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
40 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
41 """
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 Constructor
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
43
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
44 @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
45 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
46 "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
47 "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
48 "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
49 "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
50 "TlsClientKey", "UserProperties".
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
51 @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
52 @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
53 @type str
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 @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
55 @type QWidget
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 """
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
57 super().__init__(parent)
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 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
59
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
60 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
61 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
62 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
63
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
64 self.plusButton.setIcon(UI.PixmapCache.getIcon("plus"))
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
65 self.copyButton.setIcon(UI.PixmapCache.getIcon("editCopy"))
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
66 self.minusButton.setIcon(UI.PixmapCache.getIcon("minus"))
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
67 self.showPasswordButton.setIcon(UI.PixmapCache.getIcon("showPassword"))
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
68 self.willPropertiesButton.setIcon(UI.PixmapCache.getIcon("listSelection"))
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
69
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
70 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
71 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
72 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
73 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
74 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
75 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
76 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
77 )
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
78 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
79 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
80 )
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
81 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
82 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
83 )
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
84 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
85 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
86 )
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
87 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
88 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
89 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
90
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
91 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
92
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
93 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
94 self.__propertiesTypeSelected
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
95 )
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
96 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
97 self.__propertiesTypeSelected
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
98 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
99
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
100 if len(self.__profiles) == 0:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
101 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
102 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
103
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
104 self.profileFrame.setEnabled(False)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
105 self.__populatingProfile = False
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
106 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
107
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
108 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
109
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 @pyqtSlot(str)
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
111 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
112 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
113 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
114
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
115 @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
116 @type str
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
118 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
119
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 @pyqtSlot(QAbstractButton)
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 def on_profileButtonBox_clicked(self, button):
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
123 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
124
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
125 @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
126 @type QAbstractButton
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 """
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
128 if button == self.profileButtonBox.button(
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
129 QDialogButtonBox.StandardButton.Apply
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
130 ):
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
131 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
132 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
133
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
134 elif button == self.profileButtonBox.button(
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
135 QDialogButtonBox.StandardButton.Reset
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
136 ):
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
137 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
138
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
139 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
140 QDialogButtonBox.StandardButton.RestoreDefaults
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
141 ):
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
142 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
143
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 @pyqtSlot(QListWidgetItem, QListWidgetItem)
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 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
146 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
147 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
148
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
149 @param current new current item
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 @type QListWidgetItem
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
151 @param previous previous current item
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 @type QListWidgetItem
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
154 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
155 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
156
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
157 if (
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
158 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
159 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
160 and self.__isChangedProfile()
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
161 ):
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
162 # 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
163 yes = EricMessageBox.yesNo(
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
164 self,
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
165 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
166 self.tr(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
167 """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
168 """ 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
169 ),
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
170 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
171 yesDefault=True,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
172 )
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
173 if yes:
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
174 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
175
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
176 if current:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
177 profileName = current.text()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
178 self.__populateProfile(profileName)
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
179 else:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
180 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
181
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 @pyqtSlot()
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 def on_plusButton_clicked(self):
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
185 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
186 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
187 profileName, ok = QInputDialog.getText(
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
188 self,
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
189 self.tr("New Connection Profile"),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
190 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
191 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
192 )
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
193 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
194 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
195 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
196 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
197 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
198 self.tr(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
199 """<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
200 """ 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
201 ).format(profileName),
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
202 )
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
203 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
204 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
205 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
206 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
207
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
208 @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
209 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
210 """
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 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
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 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
214 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
215 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
216 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
217 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
218 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
219 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
220 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
221 )
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
222 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
223 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
224 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
225 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
226 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
227 self.tr(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
228 """<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
229 """ 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
230 ).format(newProfileName),
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
231 )
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
232 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
233 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
234 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
235 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
236 )
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
237 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
238 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
239
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
240 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
241 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
242 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
243
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 @pyqtSlot()
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 def on_minusButton_clicked(self):
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
247 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
248 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
249 itm = self.profilesList.currentItem()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
250 if itm:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
251 profileName = itm.text()
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
252 yes = EricMessageBox.yesNo(
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
253 self,
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
254 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
255 self.tr(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
256 """<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
257 """ 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
258 ).format(profileName),
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
259 )
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
260 if yes:
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
261 self.__deletingProfile = True
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
262 del self.__profiles[profileName]
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
263 self.__profilesChanged = True
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
264 self.__populateProfilesList()
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
265 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
266
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
267 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
268
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
269 def getProfiles(self):
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
270 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
271 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
272
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
273 @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
274 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
275 "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
276 "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
277 "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
278 "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
279 "UserProperties".
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
280 @rtype dict
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
281 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
282 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
283 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
284 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
285
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
286 def __applyProfile(self):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
287 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
288 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
289
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
290 @return name of the applied profile
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
291 @rtype str
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
292 """
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
293 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
294 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
295 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
296 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
297 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
298 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
299 else:
105
36ec7431ad04 Made the default MQTT protocol a configuration item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
300 # 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
301 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
302
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
303 if protocol == MqttProtocols.MQTTv5:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
304 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
305 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
306 else:
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[
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
308 "disconnect"
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
309 ] = 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
310 self.__userProperties[
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
311 "use_connect"
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
312 ] = self.samePropertiesCheckBox.isChecked()
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
313 else:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
314 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
315 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
316
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
317 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
318 connectionProfile = {
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
319 "BrokerAddress": self.brokerAddressEdit.text(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
320 "BrokerPort": self.brokerPortSpinBox.value(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
321 "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
322 "Protocol": protocol,
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
323 "ConnectionTimeout": self.connectionTimeoutSpinBox.value(),
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
324 "Keepalive": self.keepaliveSpinBox.value(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
325 "CleanSession": self.cleanSessionCheckBox.isChecked(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
326 "Username": self.usernameEdit.text(),
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
327 "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
328 "WillTopic": self.willTopicEdit.text(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
329 "WillMessage": self.willMessageEdit.toPlainText(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
330 "WillQos": self.willQosSpinBox.value(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
331 "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
332 "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
333 "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
334 "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
335 "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
336 "TlsClientKey": "",
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
337 "UserProperties": copy.deepcopy(self.__userProperties),
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
338 }
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
339 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
340 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
341 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
342 elif self.tlsSelfSignedCertsButton.isChecked():
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
343 connectionProfile[
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
344 "TlsCaCert"
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
345 ] = 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
346 connectionProfile[
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
347 "TlsClientCert"
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
348 ] = 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
349 connectionProfile[
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
350 "TlsClientKey"
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
351 ] = 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
352
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
353 self.__profiles[profileName] = connectionProfile
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
354 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
355
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
356 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
357
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
358 def __defaultProfile(self):
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
359 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
360 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
361
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
362 @return default dictionary entry
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
363 @rtype dict
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
364 """
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
365 defaultProfile = MqttClient.defaultConnectionOptions()
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
366 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
367 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
368 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
369 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
370 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
371
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
372 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
373
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
374 def __populateProfilesList(self, currentProfile=""):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
375 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
376 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
377
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
378 @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
379 @type str
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
380 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
381 if not currentProfile:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
382 currentItem = self.profilesList.currentItem()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
383 if currentItem:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
384 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
385
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
386 self.profilesList.clear()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
387 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
388
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
389 if currentProfile:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
390 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
391 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
392 )
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
393 if items:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
394 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
395
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
396 if len(self.__profiles) == 0:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
397 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
398
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
399 def __populateProfile(self, profileName):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
400 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
401 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
402
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
403 @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
404 @type str
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
405 """
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
406 connectionProfile = self.__defaultProfile()
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
407 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
408 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
409
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
410 self.__populatingProfile = True
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
411 if profileName is not None:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
412 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
413 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
414 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
415 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
416
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
417 # 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
418 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
419 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
420 )
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
421 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
422 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
423 )
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
424 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
425 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
426 )
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
427 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
428 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
429 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
430 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
431
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
432 # 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
433 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
434 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
435 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
436 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
437
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
438 # 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
439 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
440 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
441 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
442 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
443 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
444 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
445 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
446
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
447 # 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
448 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
449 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
450 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
451 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
452 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
453 connectionProfile["TlsClientCert"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
454 )
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
455 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
456 connectionProfile["TlsClientKey"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
457 )
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
458 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
459 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
460 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
461 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
462 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
463
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
464 # user properties tab
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
465 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
466 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
467 )
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
468 if not self.__userProperties:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
469 self.__userProperties = {
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
470 "connect": [],
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
471 "disconnect": [],
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
472 "use_connect": True,
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
473 }
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
474
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
475 if connectionProfile["Protocol"] == MqttProtocols.MQTTv5:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
476 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
477 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
478 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
479 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
480 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
481 )
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
482 else:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
483 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
484
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
485 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
486
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
487 self.showPasswordButton.setChecked(False)
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
488 self.profileFrame.setEnabled(True)
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
489 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
490
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
491 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
492
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
493 def __clearProfile(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
494 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
495 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
496 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
497 self.__populatingProfile = True
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
498 self.profileEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
499 self.brokerAddressEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
500 self.brokerPortSpinBox.setValue(1883)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
501 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
502 self.mqttv311Button.setChecked(True)
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
503 self.keepaliveSpinBox.setValue(60)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
504 self.cleanSessionCheckBox.setChecked(True)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
505 self.usernameEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
506 self.passwordEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
507 self.willTopicEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
508 self.willMessageEdit.setPlainText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
509 self.willQosSpinBox.setValue(0)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
510 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
511 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
512 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
513 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
514 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
515 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
516 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
517 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
518 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
519 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
520
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
521 self.__userProperties = {
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
522 "connect": [],
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
523 "disconnect": [],
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
524 "use_connect": True,
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
525 }
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
526 self.propertiesWidget.clear()
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
527 self.samePropertiesCheckBox.setChecked(True)
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
528 self.connectPropertiesButton.setChecked(True)
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
529 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
530
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
531 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
532
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
533 self.showPasswordButton.setChecked(False)
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
534 self.profileFrame.setEnabled(False)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
535 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
536
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
537 def __resetProfile(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
538 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
539 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
540 values.
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
541 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
542 profileName = self.profileEdit.text()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
543 if profileName in self.__profiles:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
544 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
545
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
546 def __populateProfileDefault(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
547 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
548 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
549 profile values.
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
550 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
551 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
552
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
553 def __isChangedProfile(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
554 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
555 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
556 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
557
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
558 @return flag indicating changed data
37
8bc357057af3 Updated source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
559 @rtype bool
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
560 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
561 profileName = self.profileEdit.text()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
562 if profileName == "":
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
563 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
564
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
565 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
566 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
567 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
568 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
569 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
570 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
571 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
572 else:
105
36ec7431ad04 Made the default MQTT protocol a configuration item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
573 # 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
574 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
575
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
576 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
577 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
578 changed = (
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
579 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
580 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
581 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
582 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
583 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
584 != connectionProfile["ConnectionTimeout"]
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.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
586 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
587 != connectionProfile["CleanSession"]
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.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
589 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
590 != 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
591 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
592 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
593 != connectionProfile["WillMessage"]
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.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
595 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
596 != connectionProfile["WillRetain"]
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.tlsGroupBox.isChecked() != connectionProfile["TlsEnable"]
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
598 )
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
599 # 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
600 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
601 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
602 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
603 )
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
604 # 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
605 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
606 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
607 changed |= (
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
608 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
609 )
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
610 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
611 changed |= (
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
612 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
613 != connectionProfile["TlsCaCert"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
614 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
615 != connectionProfile["TlsClientCert"]
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.tlsSelfSignedClientKeyFilePicker.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["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
618 )
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
619 # 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
620 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
621 properties = (
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
622 {
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
623 "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
624 "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
625 }
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
626 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
627 else {
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
628 "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
629 "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
630 }
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
631 )
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
632 changed |= (
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
633 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
634 != 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
635 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
636 != 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
637 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
638 != sorted(connectionProfile["UserProperties"]["disconnect"])
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
639 )
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
640
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
641 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
642
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
643 else:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
644 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
645
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
646 def __updateApplyButton(self):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
647 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
648 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
649 """
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
650 # 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
651 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
652
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
653 # 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
654 if (
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
655 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
656 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
657 and not self.cleanSessionCheckBox.isChecked()
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
658 ):
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
659 enable = False
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
660 EricMessageBox.critical(
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
661 self,
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
662 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
663 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
664 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
665
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
666 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
667 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
668 # 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
669 # 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
670 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
671 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
672 # 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
673 # 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
674 enable &= (
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
675 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
676 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
677 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
678 )
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
679
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
680 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
681 enable
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
682 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
683
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
684 @pyqtSlot(str)
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
685 def on_brokerAddressEdit_textChanged(self, address):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
686 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
687 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
688
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
689 @param address broker address
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
690 @type str
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
691 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
692 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
693
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
694 @pyqtSlot()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
695 def on_generateIdButton_clicked(self):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
696 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
697 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
698 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
699 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
700 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
701
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
702 @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
703 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
704 """
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 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
706
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
707 @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
708 @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
709 """
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 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
711
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
712 @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
713 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
714 """
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 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
716
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
717 @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
718 @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
719 """
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 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
721
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
722 @pyqtSlot(bool)
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
723 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
724 """
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
725 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
726
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
727 @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
728 @type bool
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
729 """
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
730 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
731 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
732 )
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
733 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
734 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
735
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
736 @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
737 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
738 """
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 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
740
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
741 @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
742 @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
743 """
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 (
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 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
746 if checked
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
747 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
748 )
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
749
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
750 @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
751 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
752 """
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 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
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 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
756
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
757 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
758 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
759 )
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
760 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
761 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
762
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
763 @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
764 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
765 """
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 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
767
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
768 @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
769 @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
770 """
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 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
772
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
773 @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
774 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
775 """
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 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
777
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
778 @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
779 @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
780 """
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 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
782
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
783 @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
784 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
785 """
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 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
787
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
788 @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
789 @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
790 """
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 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
792
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
793 @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
794 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
795 """
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 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
797
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
798 @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
799 @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
800 """
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 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
802
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
803 @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
804 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
805 """
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 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
807
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
808 @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
809 @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
810 """
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 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
812 # 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
813 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
814 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
815 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
816 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
817 """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
818 """ 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
819 """ 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
820 """ changed?"""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
821 ),
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
822 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
823 yesDefault=True,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
824 )
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
825 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
826 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
827 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
828 # 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
829 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
830 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
831 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
832 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
833 """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
834 """ 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
835 """ 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
836 """ changed?"""
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
837 ),
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
838 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
839 yesDefault=True,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
840 )
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
841 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
842 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
843
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
844 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
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 @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
847 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
848 """
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 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
850 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
851
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
852 @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
853 @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
854 """
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 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
856
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
857 @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
858 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
859 """
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 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
861 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
862
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
863 @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
864 @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
865 """
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 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
867
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
868 @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
869 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
870 """
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 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
872 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
873
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
874 @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
875 @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
876 """
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 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
878
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
879 @pyqtSlot(bool)
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
880 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
881 """
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
882 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
883
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
884 @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
885 CONNECT and DISCONNECT
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
886 @type bool
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
887 """
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
888 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
889 self.connectPropertiesButton.click()
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
890 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
891
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
892 @pyqtSlot(bool)
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
893 def __propertiesTypeSelected(self, checked):
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
894 """
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
895 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
896
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
897 @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
898 @type bool
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
899 """
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
900 if checked:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
901 # handle the selection only
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
902 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
903 self.__userProperties[
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
904 "disconnect"
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
905 ] = 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
906 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
907 else:
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.__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
909 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
910
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
911 @pyqtSlot()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
912 def reject(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
913 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
914 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
915 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
916 if self.__isChangedProfile():
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
917 button = EricMessageBox.warning(
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
918 self,
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
919 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
920 self.tr(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
921 """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
922 """ 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
923 ),
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
924 EricMessageBox.Discard | EricMessageBox.Save,
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
925 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
926 )
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
927 if button == EricMessageBox.Save:
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
928 self.__applyProfile()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
929 return
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
930
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
931 if self.__profilesChanged:
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 86
diff changeset
932 button = EricMessageBox.warning(
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
933 self,
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
934 self.tr("Changed Connection Profiles"),
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
935 self.tr(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
936 """The list of connection profiles 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
937 ),
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