MqttMonitor/MqttConnectionProfilesDialog.py

Thu, 30 Dec 2021 11:19:57 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 30 Dec 2021 11:19:57 +0100
branch
eric7
changeset 114
8c0e9e602124
parent 105
36ec7431ad04
child 123
3d7e63ed4fd1
permissions
-rw-r--r--

Updated copyright for 2022.

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

eric ide

mercurial