MqttMonitor/MqttConnectionProfilesDialog.py

Sun, 25 Apr 2021 17:57:07 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 25 Apr 2021 17:57:07 +0200
changeset 86
620022b14cb4
parent 84
044df16e55aa
child 92
2fb5c08019fd
permissions
-rw-r--r--

Implemented some code simplifications.

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
84
044df16e55aa Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 78
diff changeset
3 # Copyright (c) 2018 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
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
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
11
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
12 from PyQt5.QtCore import pyqtSlot, Qt, QUuid
78
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
13 from PyQt5.QtWidgets import (
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
14 QDialog, QDialogButtonBox, QAbstractButton, QListWidgetItem, QInputDialog,
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
15 QLineEdit
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
16 )
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
17
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
18 from E5Gui import E5MessageBox
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
19 from E5Gui.E5PathPicker import E5PathPickerModes
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 from .Ui_MqttConnectionProfilesDialog import Ui_MqttConnectionProfilesDialog
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
23 import UI.PixmapCache
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
24 from Utilities.crypto import pwConvert
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
25
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 class MqttConnectionProfilesDialog(QDialog, Ui_MqttConnectionProfilesDialog):
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 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
30 """
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
31 def __init__(self, client, profiles, parent=None):
17
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 Constructor
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
35 @param client reference to the MQTT client object
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
36 @type MqttClient
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
37 @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
38 connection parameters. Each entry must have the keys
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
39 "BrokerAddress", "BrokerPort", "ClientId",
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
40 "Keepalive", "CleanSession", "Username", "Password", "WillTopic",
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
41 "WillMessage", "WillQos", "WillRetain", "TlsEnable", "TlsCaCert",
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
42 "TlsClientCert", "TlsClientKey", "ConnectionTimeout".
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
43 @type dict
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 @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
45 @type QWidget
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 """
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
47 super().__init__(parent)
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.setupUi(self)
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
49
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
50 self.__client = client
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
51
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
52 self.__profiles = collections.defaultdict(self.__defaultProfile)
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
53 self.__profiles.update(profiles)
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
54 self.__profilesChanged = False
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
55
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
56 self.plusButton.setIcon(UI.PixmapCache.getIcon("plus.png"))
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
57 self.copyButton.setIcon(UI.PixmapCache.getIcon("editCopy.png"))
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
58 self.minusButton.setIcon(UI.PixmapCache.getIcon("minus.png"))
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
59
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
60 self.tlsCertsFilePicker.setMode(E5PathPickerModes.OpenFileMode)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
61 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
62 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
63 self.tlsSelfSignedCertsFilePicker.setMode(
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
64 E5PathPickerModes.OpenFileMode)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
65 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
66 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
67 self.tlsSelfSignedClientCertFilePicker.setMode(
ad232a5129cc 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 E5PathPickerModes.OpenFileMode)
ad232a5129cc 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.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
70 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
71 self.tlsSelfSignedClientKeyFilePicker.setMode(
ad232a5129cc 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 E5PathPickerModes.OpenFileMode)
ad232a5129cc 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.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
74 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
75
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
76 self.profileTabWidget.setCurrentIndex(0)
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
77
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
78 if len(self.__profiles) == 0:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
79 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
80 self.copyButton.setEnabled(False)
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
81
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
82 self.profileFrame.setEnabled(False)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
83 self.__populatingProfile = False
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
84 self.__deletingProfile = False
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
85
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
86 self.__populateProfilesList()
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 @pyqtSlot(str)
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
89 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
90 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
91 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
92
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
93 @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
94 @type str
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
96 self.__updateApplyButton()
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 @pyqtSlot(QAbstractButton)
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 def on_profileButtonBox_clicked(self, button):
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
101 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
102
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
103 @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
104 @type QAbstractButton
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
106 if button == self.profileButtonBox.button(QDialogButtonBox.Apply):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
107 currentProfile = self.__applyProfile()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
108 self.__populateProfilesList(currentProfile)
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
109
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
110 elif button == self.profileButtonBox.button(QDialogButtonBox.Reset):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
111 self.__resetProfile()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
112
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
113 elif button == self.profileButtonBox.button(
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
114 QDialogButtonBox.RestoreDefaults):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
115 self.__populateProfileDefault()
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 @pyqtSlot(QListWidgetItem, QListWidgetItem)
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 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
119 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
120 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
121
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
122 @param current new current item
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 @type QListWidgetItem
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
124 @param previous previous current item
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 @type QListWidgetItem
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
127 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
128 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
129
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
130 if (
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
131 current is not previous and
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
132 not self.__deletingProfile and
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
133 self.__isChangedProfile()
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
134 ):
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
135 # modified profile belongs to previous
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
136 yes = E5MessageBox.yesNo(
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
137 self,
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
138 self.tr("Changed Connection Profile"),
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
139 self.tr("""The current profile has unsaved changes."""
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
140 """ Shall these be saved?"""),
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
141 icon=E5MessageBox.Warning,
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
142 yesDefault=True)
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
143 if yes:
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
144 self.__applyProfile()
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
145
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
146 if current:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
147 profileName = current.text()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
148 self.__populateProfile(profileName)
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
149 else:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
150 self.__clearProfile()
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 @pyqtSlot()
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 def on_plusButton_clicked(self):
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
155 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
156 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
157 profileName, ok = QInputDialog.getText(
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
158 self,
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
159 self.tr("New Connection Profile"),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
160 self.tr("Enter name for the new Connection Profile:"),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
161 QLineEdit.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
162 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
163 if profileName in self.__profiles:
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
164 E5MessageBox.warning(
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
165 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
166 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
167 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
168 """ 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
169 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
170 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
171 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
172 self.profilesList.setCurrentItem(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
173 self.brokerAddressEdit.setFocus(Qt.OtherFocusReason)
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
174
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
175 @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
176 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
177 """
ad232a5129cc 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 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
179 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
180 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
181 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
182 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
183 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
184 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
185 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
186 self.tr("Enter name for the copied 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
187 QLineEdit.Normal)
ad232a5129cc 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 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
189 if newProfileName in self.__profiles:
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
190 E5MessageBox.warning(
ad232a5129cc 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 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
192 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
193 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
194 """ 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
195 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
196 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
197 profile = self.__defaultProfile()
ad232a5129cc 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 profile.update(self.__profiles[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
199 self.__profiles[newProfileName] = 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
200
ad232a5129cc 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 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
202 self.profilesList.setCurrentItem(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
203 self.brokerAddressEdit.setFocus(Qt.OtherFocusReason)
17
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 @pyqtSlot()
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 def on_minusButton_clicked(self):
ee738a0efe9c MqttConnectionProfilesDialog: started to implement the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
208 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
209 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
210 itm = self.profilesList.currentItem()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
211 if itm:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
212 profileName = itm.text()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
213 yes = E5MessageBox.yesNo(
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
214 self,
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
215 self.tr("Delete Connection Profile"),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
216 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
217 """ really be deleted?</p>""").format(profileName)
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
218 )
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
219 if yes:
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
220 self.__deletingProfile = True
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
221 del self.__profiles[profileName]
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
222 self.__profilesChanged = True
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
223 self.__populateProfilesList()
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
224 self.__deletingProfile = False
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
225
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
226 self.profilesList.setFocus(Qt.OtherFocusReason)
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
227
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
228 def getProfiles(self):
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
229 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
230 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
231
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
232 @return dictionary containing dictionaries containing the defined
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
233 connection profiles. Each entry have the keys "BrokerAddress",
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
234 "BrokerPort", "ClientId", "Keepalive", "CleanSession", "Username",
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
235 "Password", "WillTopic", "WillMessage", "WillQos", "WillRetain",
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
236 "TlsEnable", "TlsCaCert", "TlsClientCert", "TlsClientKey",
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
237 "ConnectionTimeout".
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
238 @rtype dict
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
239 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
240 profilesDict = {}
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
241 profilesDict.update(self.__profiles)
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
242 return profilesDict
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
243
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
244 def __applyProfile(self):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
245 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
246 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
247
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
248 @return name of the applied profile
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
249 @rtype str
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
250 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
251 profileName = self.profileEdit.text()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
252 profile = {
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
253 "BrokerAddress": self.brokerAddressEdit.text(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
254 "BrokerPort": self.brokerPortSpinBox.value(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
255 "ClientId": self.clientIdEdit.text(),
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
256 "ConnectionTimeout": self.connectionTimeoutSpinBox.value(),
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
257 "Keepalive": self.keepaliveSpinBox.value(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
258 "CleanSession": self.cleanSessionCheckBox.isChecked(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
259 "Username": self.usernameEdit.text(),
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
260 "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
261 "WillTopic": self.willTopicEdit.text(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
262 "WillMessage": self.willMessageEdit.toPlainText(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
263 "WillQos": self.willQosSpinBox.value(),
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
264 "WillRetain": self.willRetainCheckBox.isChecked(),
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
265 "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
266 "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
267 "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
268 "TlsClientKey": "",
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
269 }
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
270 if profile["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
271 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
272 profile["TlsCaCert"] = 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
273 elif self.tlsSelfSignedCertsButton.isChecked():
78
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
274 profile["TlsCaCert"] = (
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
275 self.tlsSelfSignedCertsFilePicker.text())
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
276 profile["TlsClientCert"] = (
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
277 self.tlsSelfSignedClientCertFilePicker.text())
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
278 profile["TlsClientKey"] = (
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
279 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
280
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
281 self.__profiles[profileName] = profile
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
282 self.__profilesChanged = True
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
283
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
284 return profileName
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
285
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
286 def __defaultProfile(self):
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
287 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
288 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
289
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
290 @return default dictionary entry
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
291 @rtype dict
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
292 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
293 defaultProfile = self.__client.defaultConnectionOptions()
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
294 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
295 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
296 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
297 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
298 defaultProfile["BrokerPort"] = 1883
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
299
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
300 return defaultProfile
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
301
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
302 def __populateProfilesList(self, currentProfile=""):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
303 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
304 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
305
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
306 @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
307 @type str
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
308 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
309 if not currentProfile:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
310 currentItem = self.profilesList.currentItem()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
311 if currentItem:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
312 currentProfile = currentItem.text()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
313
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
314 self.profilesList.clear()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
315 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
316
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
317 if currentProfile:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
318 items = self.profilesList.findItems(
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
319 currentProfile, Qt.MatchExactly)
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
320 if items:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
321 self.profilesList.setCurrentItem(items[0])
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
322
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
323 if len(self.__profiles) == 0:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
324 self.profileFrame.setEnabled(False)
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
325
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
326 def __populateProfile(self, profileName):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
327 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
328 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
329
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
330 @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
331 @type str
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
332 """
26
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
333 profile = self.__defaultProfile()
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
334 if 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
335 profile.update(self.__profiles[profileName])
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
336
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
337 self.__populatingProfile = True
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
338 if profileName is not None:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
339 self.profileEdit.setText(profileName)
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
340 self.brokerAddressEdit.setText(profile["BrokerAddress"])
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
341 self.brokerPortSpinBox.setValue(profile["BrokerPort"])
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
342 self.clientIdEdit.setText(profile["ClientId"])
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
343 self.connectionTimeoutSpinBox.setValue(profile["ConnectionTimeout"])
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
344 self.keepaliveSpinBox.setValue(profile["Keepalive"])
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
345 self.cleanSessionCheckBox.setChecked(profile["CleanSession"])
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
346 self.usernameEdit.setText(profile["Username"])
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
347 self.passwordEdit.setText(pwConvert(profile["Password"], encode=False))
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
348 self.willTopicEdit.setText(profile["WillTopic"])
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
349 self.willMessageEdit.setPlainText(profile["WillMessage"])
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
350 self.willQosSpinBox.setValue(profile["WillQos"])
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
351 self.willRetainCheckBox.setChecked(profile["WillRetain"])
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
352 self.tlsGroupBox.setChecked(profile["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
353 if profile["TlsCaCert"] and profile["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
354 self.tlsSelfSignedCertsButton.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
355 self.tlsSelfSignedCertsFilePicker.setText(profile["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
356 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
357 profile["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
358 self.tlsSelfSignedClientKeyFilePicker.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
359 profile["TlsClientKey"])
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
360 elif profile["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
361 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
362 self.tlsCertsFilePicker.setText(profile["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
363 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
364 self.tlsDefaultCertsButton.setChecked(True)
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
365 self.__populatingProfile = False
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
366
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
367 self.profileFrame.setEnabled(True)
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
368 self.__updateApplyButton()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
369
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
370 def __clearProfile(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
371 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
372 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
373 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
374 self.__populatingProfile = True
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
375 self.profileEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
376 self.brokerAddressEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
377 self.brokerPortSpinBox.setValue(1883)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
378 self.clientIdEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
379 self.keepaliveSpinBox.setValue(60)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
380 self.cleanSessionCheckBox.setChecked(True)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
381 self.usernameEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
382 self.passwordEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
383 self.willTopicEdit.setText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
384 self.willMessageEdit.setPlainText("")
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
385 self.willQosSpinBox.setValue(0)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
386 self.willRetainCheckBox.setChecked(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
387 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
388 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
389 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
390 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
391 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
392 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
393 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
394 self.tlsSelfSignedClientKeyFilePicker.setText("")
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
395 self.__populatingProfile = False
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
396
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
397 self.profileFrame.setEnabled(False)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
398 self.__updateApplyButton()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
399
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
400 def __resetProfile(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
401 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
402 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
403 values.
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
404 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
405 profileName = self.profileEdit.text()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
406 if profileName in self.__profiles:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
407 self.__populateProfile(profileName)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
408
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
409 def __populateProfileDefault(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
410 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
411 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
412 profile values.
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
413 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
414 self.__populateProfile(None)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
415
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
416 def __isChangedProfile(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
417 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
418 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
419 changed data.
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
420
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
421 @return flag indicating changed data
37
8bc357057af3 Updated source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
422 @rtype bool
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
423 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
424 profileName = self.profileEdit.text()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
425 if profileName == "":
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
426 return False
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
427
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
428 elif profileName in self.__profiles:
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
429 profile = self.__defaultProfile()
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
430 profile.update(self.__profiles[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
431 changed = (
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
432 self.brokerAddressEdit.text() != profile["BrokerAddress"] or
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
433 self.brokerPortSpinBox.value() != profile["BrokerPort"] or
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
434 self.clientIdEdit.text() != profile["ClientId"] or
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
435 self.connectionTimeoutSpinBox.value() !=
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
436 profile["ConnectionTimeout"] or
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
437 self.keepaliveSpinBox.value() != profile["Keepalive"] or
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
438 self.cleanSessionCheckBox.isChecked() !=
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
439 profile["CleanSession"] or
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
440 self.usernameEdit.text() != profile["Username"] or
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
441 self.passwordEdit.text() !=
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
442 pwConvert(profile["Password"], encode=False) or
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
443 self.willTopicEdit.text() != profile["WillTopic"] or
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
444 self.willMessageEdit.toPlainText() != profile["WillMessage"] or
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
445 self.willQosSpinBox.value() != profile["WillQos"] 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
446 self.willRetainCheckBox.isChecked() != profile["WillRetain"] or
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
447 self.tlsGroupBox.isChecked() != profile["TlsEnable"]
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
448 )
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
449 # 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
450 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
451 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
452 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
453 self.tlsCertsFilePicker.text() != profile["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
454 )
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
455 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
456 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
457 self.tlsSelfSignedCertsFilePicker.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
458 profile["TlsCaCert"] or
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
459 self.tlsSelfSignedClientCertFilePicker.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
460 profile["TlsClientCert"] or
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
461 self.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
462 profile["TlsClientKey"]
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
463 )
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
464 return changed
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
465
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
466 else:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
467 return True
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
468
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
469 def __updateApplyButton(self):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
470 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
471 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
472 """
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
473 # 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
474 enable = (bool(self.profileEdit.text()) and
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
475 bool(self.brokerAddressEdit.text()))
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
476
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
477 # 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
478 if (
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
479 not self.__populatingProfile and
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
480 self.clientIdEdit.text() == "" and
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
481 not self.cleanSessionCheckBox.isChecked()
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
482 ):
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
483 enable = False
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
484 E5MessageBox.critical(
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
485 self,
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
486 self.tr("Invalid Connection Parameters"),
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
487 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
488
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
489 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
490 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
491 # 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
492 # 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
493 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
494 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
495 # 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
496 # 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
497 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
498 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
499 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
500 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
501 )
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
502
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
503 self.profileButtonBox.button(QDialogButtonBox.Apply).setEnabled(enable)
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
504
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
505 @pyqtSlot(str)
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
506 def on_brokerAddressEdit_textChanged(self, address):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
507 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
508 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
509
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
510 @param address broker address
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
511 @type str
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
512 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
513 self.__updateApplyButton()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
514
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
515 @pyqtSlot()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
516 def on_generateIdButton_clicked(self):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
517 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
518 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
519 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
520 uuid = QUuid.createUuid()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
521 self.clientIdEdit.setText(uuid.toString(QUuid.WithoutBraces))
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
522
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
523 @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
524 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
525 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
526 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
527
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
528 @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
529 @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
530 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
531 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
532
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
533 @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
534 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
535 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
536 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
537
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
538 @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
539 @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
540 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
541 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
542
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
543 @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
544 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
545 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
546 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
547
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
548 @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
549 @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
550 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
551 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
552
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
553 @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
554 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
555 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
556 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
557
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
558 @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
559 @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
560 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
561 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
562
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
563 @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
564 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
565 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
566 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
567
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
568 @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
569 @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
570 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
571 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
572
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
573 @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
574 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
575 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
576 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
577
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
578 @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
579 @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
580 """
ad232a5129cc 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 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
582
ad232a5129cc 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 @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
584 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
585 """
ad232a5129cc 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 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
587
ad232a5129cc 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 @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
589 @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
590 """
ad232a5129cc 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 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
592 # port is still standard non-TLS port
ad232a5129cc 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 yes = E5MessageBox.yesNo(
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
594 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
595 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
596 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
597 """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
598 """ 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
599 """ 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
600 """ 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
601 icon=E5MessageBox.Warning,
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
602 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
603 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
604 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
605 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
606 # port is still standard TLS port
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
607 yes = E5MessageBox.yesNo(
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
608 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
609 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
610 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
611 """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
612 """ 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
613 """ 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
614 """ 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
615 icon=E5MessageBox.Warning,
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
616 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
617 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
618 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
619
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
620 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
621
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
622 @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
623 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
624 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
625 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
626 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
627
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
628 @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
629 @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
630 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
631 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
632
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
633 @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
634 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
635 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
636 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
637 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
638
ad232a5129cc 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 @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
640 @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
641 """
ad232a5129cc 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 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
643
ad232a5129cc 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 @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
645 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
646 """
ad232a5129cc 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 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
648 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
649
ad232a5129cc 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 @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
651 @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
652 """
ad232a5129cc MqttConnectionProfilesDialog: added support for TLS and added a button to copy the current profile.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
653 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
654
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
655 @pyqtSlot()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
656 def reject(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
657 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
658 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
659 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
660 if self.__isChangedProfile():
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
661 button = E5MessageBox.warning(
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
662 self,
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
663 self.tr("Changed Connection Profile"),
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
664 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
665 """ these be saved?"""),
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
666 E5MessageBox.StandardButtons(
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
667 E5MessageBox.Discard |
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
668 E5MessageBox.Save),
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
669 E5MessageBox.Save)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
670 if button == E5MessageBox.Save:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
671 self.__applyProfile()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
672 return
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
673
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
674 if self.__profilesChanged:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
675 button = E5MessageBox.warning(
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
676 self,
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
677 self.tr("Changed Connection Profiles"),
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
678 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
679 """ changes."""),
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
680 E5MessageBox.StandardButtons(
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
681 E5MessageBox.Abort |
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
682 E5MessageBox.Discard |
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
683 E5MessageBox.Save),
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
684 E5MessageBox.Save)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
685 if button == E5MessageBox.Save:
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
686 super().accept()
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
687 return
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
688 elif button == E5MessageBox.Abort:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
689 return
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
690
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
691 super().reject()
23
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
692
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
693 @pyqtSlot()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
694 def accept(self):
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
695 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
696 Public slot to accept the dialog.
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
697 """
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
698 if self.__isChangedProfile():
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
699 yes = E5MessageBox.yesNo(
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
700 self,
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
701 self.tr("Changed Connection Profile"),
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
702 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
703 """ these be saved?"""),
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
704 icon=E5MessageBox.Warning,
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
705 yesDefault=True)
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
706 if yes:
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
707 self.__applyProfile()
0b23bd856e43 MqttConnectionProfilesDialog: finished implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
708
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
709 super().accept()

eric ide

mercurial