Updated source code documentation. eric7

Sat, 24 Jul 2021 16:51:29 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 24 Jul 2021 16:51:29 +0200
branch
eric7
changeset 108
d7808a71b234
parent 107
639445679db1
child 109
d7de3dfa0b3e

Updated source code documentation.

MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.ConfigurationPage.MqttPage.html file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttClient.html file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttConnectionOptionsDialog.html file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttConnectionProfilesDialog.html file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttMonitorWidget.html file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttProtocols.html file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttReasonCodes.html file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttUserPropertiesEditor.html file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.PluginMqttMonitor.html file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/index-Plugin_Mqtt_Monitor.MqttMonitor.ConfigurationPage.html file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/index-Plugin_Mqtt_Monitor.MqttMonitor.html file | annotate | diff | comparison | revisions
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.ConfigurationPage.MqttPage.html	Sat Jul 24 16:51:29 2021 +0200
@@ -0,0 +1,109 @@
+<!DOCTYPE html>
+<html><head>
+<title>Plugin_Mqtt_Monitor.MqttMonitor.ConfigurationPage.MqttPage</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>Plugin_Mqtt_Monitor.MqttMonitor.ConfigurationPage.MqttPage</h1>
+
+<p>
+Module implementing the MQTT Monitor configuration page.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+
+<tr>
+<td><a href="#MqttPage">MqttPage</a></td>
+<td>Class implementing the MQTT Monitor configuration page.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr />
+<hr />
+<a NAME="MqttPage" ID="MqttPage"></a>
+<h2>MqttPage</h2>
+
+<p>
+    Class implementing the MQTT Monitor configuration page.
+</p>
+<h3>Derived from</h3>
+ConfigurationPageBase, Ui_MqttPage
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#MqttPage.__init__">MqttPage</a></td>
+<td>Constructor</td>
+</tr>
+<tr>
+<td><a href="#MqttPage.save">save</a></td>
+<td>Public slot to save the Rope Autocompletion configuration.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="MqttPage.__init__" ID="MqttPage.__init__"></a>
+<h4>MqttPage (Constructor)</h4>
+<b>MqttPage</b>(<i>plugin</i>)
+
+<p>
+        Constructor
+</p>
+<dl>
+
+<dt><i>plugin</i> (RefactoringRopePlugin)</dt>
+<dd>
+reference to the plugin object
+</dd>
+</dl>
+<a NAME="MqttPage.save" ID="MqttPage.save"></a>
+<h4>MqttPage.save</h4>
+<b>save</b>(<i></i>)
+
+<p>
+        Public slot to save the Rope Autocompletion configuration.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttClient.html	Sat Jul 24 16:50:10 2021 +0200
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttClient.html	Sat Jul 24 16:51:29 2021 +0200
@@ -72,38 +72,62 @@
 emitted to indicate, that a connection attempt
         timed out
 </dd>
-<dt>onConnect(flags, rc)</dt>
+<dt>onConnectV3(flags, rc)</dt>
 <dd>
-emitted after the client has connected to the
-        broker
+emitted after the client has connected to
+        the broker (MQTT v3)
 </dd>
-<dt>onDisconnected(rc)</dt>
+<dt>onConnectV5(flags, rc, packetType, properties emitted after theclient has connected to the broker (MQTT v5)</dt>
+<dd>
+
+</dd>
+<dt>onDisconnectedV3(rc)</dt>
 <dd>
 emitted after the client has disconnected from
-        the broker
+        the broker (MQTT v3)
+</dd>
+<dt>onDisconnectedV5(rc, packetType)</dt>
+<dd>
+emitted after the client has
+        disconnected from the broker (MQTT v5)
 </dd>
 <dt>onLog(level, message)</dt>
 <dd>
 emitted to send client log data
 </dd>
-<dt>onMessage(topic, payload, qos, retain)</dt>
+<dt>onMessageV3(topic, payload, qos, retain)</dt>
 <dd>
-emitted after a message has
-        been received by the client
+emitted after a message
+        has been received by the client (MQTT v3)
+</dd>
+<dt>onMessageV5(topic, payload, qos, retain, properties)</dt>
+<dd>
+emitted after
+        a message has been received by the client (MQTT v5)
 </dd>
 <dt>onPublish(mid)</dt>
 <dd>
 emitted after a message has been published
 </dd>
-<dt>onSubscribe(mid, grantedQos)</dt>
+<dt>onSubscribeV3(mid, grantedQos)</dt>
 <dd>
 emitted after the client has
-        subscribed to some topics
+        subscribed to some topics (MQTT v3)
 </dd>
-<dt>onUnsubscribe(mid)</dt>
+<dt>onSubscribeV5(mid, reasonCodes, properties)</dt>
+<dd>
+emitted after the
+        client has subscribed to some topics (MQTT v5)
+</dd>
+<dt>onUnsubscribeV3(mid)</dt>
 <dd>
 emitted after the client has unsubscribed from
-        some topics
+        some topics (MQTT v3)
+</dd>
+<dt>onUnsubscribeV5(mid, rc, packetType, properties)</dt>
+<dd>
+emitted after the
+        client has unsubscribed from some topics (MQTT v5)
 </dd>
 </dl>
 <h3>Derived from</h3>
@@ -116,7 +140,11 @@
 <h3>Class Methods</h3>
 
 <table>
-<tr><td>None</td></tr>
+
+<tr>
+<td><a href="#MqttClient.defaultConnectionOptions">defaultConnectionOptions</a></td>
+<td>Class method to get a connection options dictionary with default values.</td>
+</tr>
 </table>
 <h3>Methods</h3>
 
@@ -131,10 +159,18 @@
 <td>Private slot handling a failed connection attempt.</td>
 </tr>
 <tr>
+<td><a href="#MqttClient.__createPropertiesObject">__createPropertiesObject</a></td>
+<td>Private method to assemble the MQTT v5 properties object.</td>
+</tr>
+<tr>
 <td><a href="#MqttClient.__initCallbacks">__initCallbacks</a></td>
 <td>Private method to initialize the MQTT callback methods.</td>
 </tr>
 <tr>
+<td><a href="#MqttClient.__onDisconnectedV5">__onDisconnectedV5</a></td>
+<td>Private method to handle the disconnect from the broker.</td>
+</tr>
+<tr>
 <td><a href="#MqttClient.clearLastWill">clearLastWill</a></td>
 <td>Public method to remove a will that was previously configured with setLastWill().</td>
 </tr>
@@ -147,12 +183,12 @@
 <td>Public method to connect to a remote MQTT broker.</td>
 </tr>
 <tr>
-<td><a href="#MqttClient.defaultConnectionOptions">defaultConnectionOptions</a></td>
-<td>Public method to get a connection options dictionary with default values.</td>
+<td><a href="#MqttClient.disconnectFromServer">disconnectFromServer</a></td>
+<td>Public method to disconnect the client from the remote broker.</td>
 </tr>
 <tr>
-<td><a href="#MqttClient.disconnectFromServer">disconnectFromServer</a></td>
-<td>Public method to disconnect the client from the remote broker.</td>
+<td><a href="#MqttClient.getProtocol">getProtocol</a></td>
+<td>Public method to get the MQTT protocol version.</td>
 </tr>
 <tr>
 <td><a href="#MqttClient.publish">publish</a></td>
@@ -163,10 +199,6 @@
 <td>Public method to reconnect the client with the same parameters.</td>
 </tr>
 <tr>
-<td><a href="#MqttClient.reinitialise">reinitialise</a></td>
-<td>Public method to reinitialize the client with given data.</td>
-</tr>
-<tr>
 <td><a href="#MqttClient.setConnectionTimeout">setConnectionTimeout</a></td>
 <td>Public method to set the connection timeout value.</td>
 </tr>
@@ -217,6 +249,30 @@
 <tr><td>None</td></tr>
 </table>
 
+<a NAME="MqttClient.defaultConnectionOptions" ID="MqttClient.defaultConnectionOptions"></a>
+<h4>MqttClient.defaultConnectionOptions (class method)</h4>
+<b>defaultConnectionOptions</b>(<i></i>)
+
+<p>
+        Class method to get a connection options dictionary with default
+        values.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+dictionary containing the default connection options. It has
+            the keys "ClientId", "Protocol", "ConnectionTimeout", "Keepalive",
+            "CleanSession", "Username", "Password", "WillTopic", "WillMessage",
+            "WillQos", "WillRetain", "WillProperties", "TlsEnable",
+            "TlsCaCert", "TlsClientCert", "TlsClientKey", "UserProperties".
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl>
 <a NAME="MqttClient.__init__" ID="MqttClient.__init__"></a>
 <h4>MqttClient (Constructor)</h4>
 <b>MqttClient</b>(<i>clientId="", cleanSession=True, userdata=None, protocol=mqtt.MQTTv311, transport="tcp", parent=None</i>)
@@ -238,7 +294,7 @@
 <dd>
 user data
 </dd>
-<dt><i>protocol</i> (int, one of mqtt.MQTTv3, mqtt.MQTTv311 or mqtt.MQTTv5)</dt>
+<dt><i>protocol</i> (int, one of mqtt.MQTTv31, mqtt.MQTTv311 or mqtt.MQTTv5)</dt>
 <dd>
 version of the MQTT protocol to use
 </dd>
@@ -258,13 +314,76 @@
 <p>
         Private slot handling a failed connection attempt.
 </p>
+<a NAME="MqttClient.__createPropertiesObject" ID="MqttClient.__createPropertiesObject"></a>
+<h4>MqttClient.__createPropertiesObject</h4>
+<b>__createPropertiesObject</b>(<i>packetType, properties</i>)
+
+<p>
+        Private method to assemble the MQTT v5 properties object.
+</p>
+<dl>
+
+<dt><i>packetType</i> (PacketTypes (= int))</dt>
+<dd>
+type of the MQTT packet
+</dd>
+<dt><i>properties</i> (list of tuple of (str, str))</dt>
+<dd>
+list of user properties
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+MQTT v5 properties object
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+Properties
+</dd>
+</dl>
 <a NAME="MqttClient.__initCallbacks" ID="MqttClient.__initCallbacks"></a>
 <h4>MqttClient.__initCallbacks</h4>
-<b>__initCallbacks</b>(<i></i>)
+<b>__initCallbacks</b>(<i>protocol</i>)
 
 <p>
         Private method to initialize the MQTT callback methods.
 </p>
+<dl>
+
+<dt><i>protocol</i> (MqttProtocols)</dt>
+<dd>
+MQTT protocol version
+</dd>
+</dl>
+<a NAME="MqttClient.__onDisconnectedV5" ID="MqttClient.__onDisconnectedV5"></a>
+<h4>MqttClient.__onDisconnectedV5</h4>
+<b>__onDisconnectedV5</b>(<i>client, userdata, rc, properties=None</i>)
+
+<p>
+        Private method to handle the disconnect from the broker.
+</p>
+<dl>
+
+<dt><i>client</i> (paho.mqtt.Client)</dt>
+<dd>
+reference to the client object
+</dd>
+<dt><i>userdata</i> (Any)</dt>
+<dd>
+user data
+</dd>
+<dt><i>rc</i> (int or ReasonCodes)</dt>
+<dd>
+result code or reason code
+</dd>
+<dt><i>properties</i> (dict (optional))</dt>
+<dd>
+optional properties (defaults to None)
+</dd>
+</dl>
 <a NAME="MqttClient.clearLastWill" ID="MqttClient.clearLastWill"></a>
 <h4>MqttClient.clearLastWill</h4>
 <b>clearLastWill</b>(<i></i>)
@@ -275,7 +394,7 @@
 </p>
 <a NAME="MqttClient.connectToServer" ID="MqttClient.connectToServer"></a>
 <h4>MqttClient.connectToServer</h4>
-<b>connectToServer</b>(<i>host, port=1883, keepalive=60, bindAddress="", reinit=True</i>)
+<b>connectToServer</b>(<i>host, port=1883, keepalive=60, bindAddress="", properties=None, clearWill=False</i>)
 
 <p>
         Public method to connect to a remote MQTT broker.
@@ -301,15 +420,19 @@
 IP address of a local network interface to bind
             this client to
 </dd>
-<dt><i>reinit</i> (bool)</dt>
+<dt><i>properties</i> (list of tuple of (str, str))</dt>
 <dd>
-flag indicating to reinitialize the MQTT client before
-            trying to connect with the given parameters
+list of user properties to be sent with the
+            subscription
+</dd>
+<dt><i>clearWill</i> (bool)</dt>
+<dd>
+flag indicating to clear the last will previously set
 </dd>
 </dl>
 <a NAME="MqttClient.connectToServerWithOptions" ID="MqttClient.connectToServerWithOptions"></a>
 <h4>MqttClient.connectToServerWithOptions</h4>
-<b>connectToServerWithOptions</b>(<i>host, port=1883, bindAddress="", options=None</i>)
+<b>connectToServerWithOptions</b>(<i>host, port=1883, bindAddress="", options=None, clearWill=False</i>)
 
 <p>
         Public method to connect to a remote MQTT broker.
@@ -333,34 +456,15 @@
 <dt><i>options</i> (dict)</dt>
 <dd>
 dictionary containing the connection options. This
-            dictionary should contain the keys "ClientId", "Keepalive",
-            "CleanSession", "Username", "Password", "WillTopic", "WillMessage",
-            "WillQos", "WillRetain", "TlsEnable", "TlsCaCert", "TlsClientCert",
-            "TlsClientKey", "ConnectionTimeout"
+            dictionary should contain the keys "ClientId", "ConnectionTimeout",
+            "Keepalive", "CleanSession", "Username", "Password", "WillTopic",
+            "WillMessage", "WillQos", "WillRetain", "WillProperties",
+            "TlsEnable", "TlsCaCert", "TlsClientCert", "TlsClientKey",
+            "UserProperties".
 </dd>
-</dl>
-<a NAME="MqttClient.defaultConnectionOptions" ID="MqttClient.defaultConnectionOptions"></a>
-<h4>MqttClient.defaultConnectionOptions</h4>
-<b>defaultConnectionOptions</b>(<i></i>)
-
-<p>
-        Public method to get a connection options dictionary with default
-        values.
-</p>
-<dl>
-<dt>Return:</dt>
+<dt><i>clearWill</i> (bool)</dt>
 <dd>
-dictionary containing the default connection options. It has
-            the keys "ClientId", "Keepalive", "CleanSession", "Username",
-            "Password", "WillTopic", "WillMessage", "WillQos", "WillRetain",
-            "TlsEnable", "TlsCaCert", "TlsClientCert", "TlsClientKey",
-            "ConnectionTimeout".
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-dict
+flag indicating to clear the last will previously set
 </dd>
 </dl>
 <a NAME="MqttClient.disconnectFromServer" ID="MqttClient.disconnectFromServer"></a>
@@ -370,9 +474,28 @@
 <p>
         Public method to disconnect the client from the remote broker.
 </p>
+<a NAME="MqttClient.getProtocol" ID="MqttClient.getProtocol"></a>
+<h4>MqttClient.getProtocol</h4>
+<b>getProtocol</b>(<i></i>)
+
+<p>
+        Public method to get the MQTT protocol version.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+MQTT protocol version in use
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl>
 <a NAME="MqttClient.publish" ID="MqttClient.publish"></a>
 <h4>MqttClient.publish</h4>
-<b>publish</b>(<i>topic, payload=None, qos=0, retain=False</i>)
+<b>publish</b>(<i>topic, payload=None, qos=0, retain=False, properties=None</i>)
 
 <p>
         Public method to publish to a topic.
@@ -396,6 +519,11 @@
 flag indicating to set as the "last known good"/retained
             message for the topic
 </dd>
+<dt><i>properties</i> (list of tuple of (str, str))</dt>
+<dd>
+list of user properties to be sent with the
+            subscription
+</dd>
 </dl>
 <dl>
 <dt>Return:</dt>
@@ -416,28 +544,6 @@
 <p>
         Public method to reconnect the client with the same parameters.
 </p>
-<a NAME="MqttClient.reinitialise" ID="MqttClient.reinitialise"></a>
-<h4>MqttClient.reinitialise</h4>
-<b>reinitialise</b>(<i>clientId="", cleanSession=True, userdata=None</i>)
-
-<p>
-        Public method to reinitialize the client with given data.
-</p>
-<dl>
-
-<dt><i>clientId</i> (str)</dt>
-<dd>
-ID to be used for the client
-</dd>
-<dt><i>cleanSession</i> (bool)</dt>
-<dd>
-flag indicating to start a clean session
-</dd>
-<dt><i>userdata</i> (any)</dt>
-<dd>
-user data
-</dd>
-</dl>
 <a NAME="MqttClient.setConnectionTimeout" ID="MqttClient.setConnectionTimeout"></a>
 <h4>MqttClient.setConnectionTimeout</h4>
 <b>setConnectionTimeout</b>(<i>timeout</i>)
@@ -454,7 +560,7 @@
 </dl>
 <a NAME="MqttClient.setLastWill" ID="MqttClient.setLastWill"></a>
 <h4>MqttClient.setLastWill</h4>
-<b>setLastWill</b>(<i>topic, payload=None, qos=0, retain=False</i>)
+<b>setLastWill</b>(<i>topic, payload=None, qos=0, retain=False, properties=None</i>)
 
 <p>
         Public method to set the last will of the client.
@@ -478,6 +584,11 @@
 flag indicating to set as the "last known good"/retained
             message for the will topic
 </dd>
+<dt><i>properties</i> (list of tuple of (str, str))</dt>
+<dd>
+list of user properties to be sent with the
+            last will message
+</dd>
 </dl>
 <a NAME="MqttClient.setMaxInflightMessages" ID="MqttClient.setMaxInflightMessages"></a>
 <h4>MqttClient.setMaxInflightMessages</h4>
@@ -592,7 +703,7 @@
 </p>
 <a NAME="MqttClient.subscribe" ID="MqttClient.subscribe"></a>
 <h4>MqttClient.subscribe</h4>
-<b>subscribe</b>(<i>topic, qos=0</i>)
+<b>subscribe</b>(<i>topic, qos=0, properties=None</i>)
 
 <p>
         Public method to subscribe to topics with quality of service.
@@ -608,6 +719,11 @@
 <dd>
 quality of service
 </dd>
+<dt><i>properties</i> (list of tuple of (str, str))</dt>
+<dd>
+list of user properties to be sent with the
+            subscription
+</dd>
 </dl>
 <dl>
 <dt>Return:</dt>
@@ -623,7 +739,7 @@
 </dl>
 <a NAME="MqttClient.unsubscribe" ID="MqttClient.unsubscribe"></a>
 <h4>MqttClient.unsubscribe</h4>
-<b>unsubscribe</b>(<i>topic</i>)
+<b>unsubscribe</b>(<i>topic, properties=None</i>)
 
 <p>
         Public method to unsubscribe topics.
@@ -634,6 +750,11 @@
 <dd>
 topic or list of topics to unsubscribe
 </dd>
+<dt><i>properties</i> (list of tuple of (str, str))</dt>
+<dd>
+list of user properties to be sent with the
+            subscription
+</dd>
 </dl>
 <dl>
 <dt>Return:</dt>
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttConnectionOptionsDialog.html	Sat Jul 24 16:50:10 2021 +0200
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttConnectionOptionsDialog.html	Sat Jul 24 16:51:29 2021 +0200
@@ -77,6 +77,10 @@
 <td>Private method to populate the dialog.</td>
 </tr>
 <tr>
+<td><a href="#MqttConnectionOptionsDialog.__propertiesTypeSelected">__propertiesTypeSelected</a></td>
+<td>Private slot to handle the switching of the user properties type.</td>
+</tr>
+<tr>
 <td><a href="#MqttConnectionOptionsDialog.__updateOkButton">__updateOkButton</a></td>
 <td>Private method to update the enabled state of the OK button.</td>
 </tr>
@@ -100,6 +104,18 @@
 <td><a href="#MqttConnectionOptionsDialog.on_generateIdButton_clicked">on_generateIdButton_clicked</a></td>
 <td>Private slot to generate a client ID.</td>
 </tr>
+<tr>
+<td><a href="#MqttConnectionOptionsDialog.on_mqttv5Button_toggled">on_mqttv5Button_toggled</a></td>
+<td>Private slot to handle the selection of the MQTT protocol.</td>
+</tr>
+<tr>
+<td><a href="#MqttConnectionOptionsDialog.on_samePropertiesCheckBox_toggled">on_samePropertiesCheckBox_toggled</a></td>
+<td>Private slot to handle a change of the properties usage.</td>
+</tr>
+<tr>
+<td><a href="#MqttConnectionOptionsDialog.on_willPropertiesButton_clicked">on_willPropertiesButton_clicked</a></td>
+<td>Private slot to edit the last will user properties.</td>
+</tr>
 </table>
 <h3>Static Methods</h3>
 
@@ -109,24 +125,21 @@
 
 <a NAME="MqttConnectionOptionsDialog.__init__" ID="MqttConnectionOptionsDialog.__init__"></a>
 <h4>MqttConnectionOptionsDialog (Constructor)</h4>
-<b>MqttConnectionOptionsDialog</b>(<i>client, options=None, parent=None</i>)
+<b>MqttConnectionOptionsDialog</b>(<i>options=None, parent=None</i>)
 
 <p>
         Constructor
 </p>
 <dl>
 
-<dt><i>client</i> (MqttClient)</dt>
-<dd>
-reference to the MQTT client object
-</dd>
 <dt><i>options</i> (dict)</dt>
 <dd>
 dictionary containing the connection options to
             populate the dialog with. It must have the keys "ClientId",
-            "Keepalive", "CleanSession", "Username", "Password", "WillTopic",
-            "WillMessage", "WillQos", "WillRetain", "TlsEnable", "TlsCaCert",
-            "ConnectionTimeout".
+            "Protocol", "ConnectionTimeout", "Keepalive", "CleanSession",
+            "Username", "Password", "WillTopic", "WillMessage", "WillQos",
+            "WillRetain", "WillProperties", "TlsEnable", "TlsCaCert",
+            "UserProperties".
 </dd>
 <dt><i>parent</i> (QWidget)</dt>
 <dd>
@@ -149,10 +162,24 @@
 <dt><i>options</i> (dict)</dt>
 <dd>
 dictionary containing the connection options to populate
-            the dialog with. It must have the keys "ClientId", "Keepalive",
-            "CleanSession", "Username", "Password", "WillTopic", "WillMessage",
-            "WillQos", "WillRetain", "TlsEnable", "TlsCaCert",
-            "ConnectionTimeout".
+            the dialog with. It must have the keys "ClientId", "Protocol",
+            "ConnectionTimeout", "Keepalive", "CleanSession", "Username",
+            "Password", "WillTopic", "WillMessage", "WillQos", "WillRetain",
+            "WillProperties", "TlsEnable", "TlsCaCert", "UserProperties".
+</dd>
+</dl>
+<a NAME="MqttConnectionOptionsDialog.__propertiesTypeSelected" ID="MqttConnectionOptionsDialog.__propertiesTypeSelected"></a>
+<h4>MqttConnectionOptionsDialog.__propertiesTypeSelected</h4>
+<b>__propertiesTypeSelected</b>(<i>checked</i>)
+
+<p>
+        Private slot to handle the switching of the user properties type.
+</p>
+<dl>
+
+<dt><i>checked</i> (bool)</dt>
+<dd>
+state of the buttons
 </dd>
 </dl>
 <a NAME="MqttConnectionOptionsDialog.__updateOkButton" ID="MqttConnectionOptionsDialog.__updateOkButton"></a>
@@ -173,9 +200,10 @@
 <dt>Return:</dt>
 <dd>
 dictionary containing the connection options. It has the keys
-            "ClientId", "Keepalive", "CleanSession", "Username", "Password",
-            "WillTopic", "WillMessage", "WillQos", "WillRetain", "TlsEnable",
-            "TlsCaCert", "ConnectionTimeout".
+            "ClientId", "Protocol", "ConnectionTimeout", "Keepalive",
+            "CleanSession", "Username", "Password", "WillTopic", "WillMessage",
+            "WillQos", "WillRetain", "WillProperties", "TlsEnable",
+            "TlsCaCert", "UserProperties".
 </dd>
 </dl>
 <dl>
@@ -233,6 +261,42 @@
 <p>
         Private slot to generate a client ID.
 </p>
+<a NAME="MqttConnectionOptionsDialog.on_mqttv5Button_toggled" ID="MqttConnectionOptionsDialog.on_mqttv5Button_toggled"></a>
+<h4>MqttConnectionOptionsDialog.on_mqttv5Button_toggled</h4>
+<b>on_mqttv5Button_toggled</b>(<i>checked</i>)
+
+<p>
+        Private slot to handle the selection of the MQTT protocol.
+</p>
+<dl>
+
+<dt><i>checked</i> (bool)</dt>
+<dd>
+state of the button
+</dd>
+</dl>
+<a NAME="MqttConnectionOptionsDialog.on_samePropertiesCheckBox_toggled" ID="MqttConnectionOptionsDialog.on_samePropertiesCheckBox_toggled"></a>
+<h4>MqttConnectionOptionsDialog.on_samePropertiesCheckBox_toggled</h4>
+<b>on_samePropertiesCheckBox_toggled</b>(<i>checked</i>)
+
+<p>
+        Private slot to handle a change of the properties usage.
+</p>
+<dl>
+
+<dt><i>checked</i> (bool)</dt>
+<dd>
+flag indicating to use the same user properties for
+            CONNECT and DISCONNECT
+</dd>
+</dl>
+<a NAME="MqttConnectionOptionsDialog.on_willPropertiesButton_clicked" ID="MqttConnectionOptionsDialog.on_willPropertiesButton_clicked"></a>
+<h4>MqttConnectionOptionsDialog.on_willPropertiesButton_clicked</h4>
+<b>on_willPropertiesButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to edit the last will user properties.
+</p>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttConnectionProfilesDialog.html	Sat Jul 24 16:50:10 2021 +0200
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttConnectionProfilesDialog.html	Sat Jul 24 16:51:29 2021 +0200
@@ -101,6 +101,10 @@
 <td>Private method to populate the list of defined profiles.</td>
 </tr>
 <tr>
+<td><a href="#MqttConnectionProfilesDialog.__propertiesTypeSelected">__propertiesTypeSelected</a></td>
+<td>Private slot to handle the switching of the user properties type.</td>
+</tr>
+<tr>
 <td><a href="#MqttConnectionProfilesDialog.__resetProfile">__resetProfile</a></td>
 <td>Private method to reset the profile data entry fields to their stored values.</td>
 </tr>
@@ -141,6 +145,10 @@
 <td>Private slot to delete the selected entry.</td>
 </tr>
 <tr>
+<td><a href="#MqttConnectionProfilesDialog.on_mqttv5Button_toggled">on_mqttv5Button_toggled</a></td>
+<td>Private slot to handle the selection of the MQTT protocol.</td>
+</tr>
+<tr>
 <td><a href="#MqttConnectionProfilesDialog.on_plusButton_clicked">on_plusButton_clicked</a></td>
 <td>Private slot to add a new empty profile entry.</td>
 </tr>
@@ -157,6 +165,10 @@
 <td>Private slot to handle a change of the current profile.</td>
 </tr>
 <tr>
+<td><a href="#MqttConnectionProfilesDialog.on_samePropertiesCheckBox_toggled">on_samePropertiesCheckBox_toggled</a></td>
+<td>Private slot to handle a change of the properties usage.</td>
+</tr>
+<tr>
 <td><a href="#MqttConnectionProfilesDialog.on_showPasswordButton_toggled">on_showPasswordButton_toggled</a></td>
 <td>Private slot to show or hide the password.</td>
 </tr>
@@ -193,6 +205,10 @@
 <td>Private slot handling a change of the TLS client key file.</td>
 </tr>
 <tr>
+<td><a href="#MqttConnectionProfilesDialog.on_willPropertiesButton_clicked">on_willPropertiesButton_clicked</a></td>
+<td>Private slot to edit the last will user properties.</td>
+</tr>
+<tr>
 <td><a href="#MqttConnectionProfilesDialog.reject">reject</a></td>
 <td>Public slot to reject the dialog changes.</td>
 </tr>
@@ -205,25 +221,26 @@
 
 <a NAME="MqttConnectionProfilesDialog.__init__" ID="MqttConnectionProfilesDialog.__init__"></a>
 <h4>MqttConnectionProfilesDialog (Constructor)</h4>
-<b>MqttConnectionProfilesDialog</b>(<i>client, profiles, parent=None</i>)
+<b>MqttConnectionProfilesDialog</b>(<i>profiles, currentProfile="", parent=None</i>)
 
 <p>
         Constructor
 </p>
 <dl>
 
-<dt><i>client</i> (MqttClient)</dt>
-<dd>
-reference to the MQTT client object
-</dd>
 <dt><i>profiles</i> (dict)</dt>
 <dd>
 dictionary containing dictionaries containing the
             connection parameters. Each entry must have the keys
-            "BrokerAddress", "BrokerPort", "ClientId",
-            "Keepalive", "CleanSession", "Username", "Password", "WillTopic",
-            "WillMessage", "WillQos", "WillRetain", "TlsEnable", "TlsCaCert",
-            "TlsClientCert", "TlsClientKey", "ConnectionTimeout".
+            "BrokerAddress", "BrokerPort", "ClientId", "Protocol",
+            "ConnectionTimeout", "Keepalive", "CleanSession", "Username",
+            "Password", "WillTopic", "WillMessage", "WillQos", "WillRetain",
+            "WillProperties", "TlsEnable", "TlsCaCert", "TlsClientCert",
+            "TlsClientKey", "UserProperties".
+</dd>
+<dt><i>currentProfile</i> (str)</dt>
+<dd>
+name of the currently selected profile
 </dd>
 <dt><i>parent</i> (QWidget)</dt>
 <dd>
@@ -331,6 +348,20 @@
 name of the current profile
 </dd>
 </dl>
+<a NAME="MqttConnectionProfilesDialog.__propertiesTypeSelected" ID="MqttConnectionProfilesDialog.__propertiesTypeSelected"></a>
+<h4>MqttConnectionProfilesDialog.__propertiesTypeSelected</h4>
+<b>__propertiesTypeSelected</b>(<i>checked</i>)
+
+<p>
+        Private slot to handle the switching of the user properties type.
+</p>
+<dl>
+
+<dt><i>checked</i> (bool)</dt>
+<dd>
+state of the buttons
+</dd>
+</dl>
 <a NAME="MqttConnectionProfilesDialog.__resetProfile" ID="MqttConnectionProfilesDialog.__resetProfile"></a>
 <h4>MqttConnectionProfilesDialog.__resetProfile</h4>
 <b>__resetProfile</b>(<i></i>)
@@ -364,11 +395,12 @@
 <dt>Return:</dt>
 <dd>
 dictionary containing dictionaries containing the defined
-            connection profiles. Each entry have the keys "BrokerAddress",
-            "BrokerPort", "ClientId", "Keepalive", "CleanSession", "Username",
-            "Password", "WillTopic", "WillMessage", "WillQos", "WillRetain",
+            connection profiles. Each entry has the keys "BrokerAddress",
+            "BrokerPort", "ClientId", "Protocol", "ConnectionTimeout",
+            "Keepalive", "CleanSession", "Username", "Password", "WillTopic",
+            "WillMessage", "WillQos", "WillRetain", "WillProperties",
             "TlsEnable", "TlsCaCert", "TlsClientCert", "TlsClientKey",
-            "ConnectionTimeout".
+            "UserProperties".
 </dd>
 </dl>
 <dl>
@@ -440,6 +472,20 @@
 <p>
         Private slot to delete the selected entry.
 </p>
+<a NAME="MqttConnectionProfilesDialog.on_mqttv5Button_toggled" ID="MqttConnectionProfilesDialog.on_mqttv5Button_toggled"></a>
+<h4>MqttConnectionProfilesDialog.on_mqttv5Button_toggled</h4>
+<b>on_mqttv5Button_toggled</b>(<i>checked</i>)
+
+<p>
+        Private slot to handle the selection of the MQTT protocol.
+</p>
+<dl>
+
+<dt><i>checked</i> (bool)</dt>
+<dd>
+state of the button
+</dd>
+</dl>
 <a NAME="MqttConnectionProfilesDialog.on_plusButton_clicked" ID="MqttConnectionProfilesDialog.on_plusButton_clicked"></a>
 <h4>MqttConnectionProfilesDialog.on_plusButton_clicked</h4>
 <b>on_plusButton_clicked</b>(<i></i>)
@@ -493,6 +539,21 @@
 previous current item
 </dd>
 </dl>
+<a NAME="MqttConnectionProfilesDialog.on_samePropertiesCheckBox_toggled" ID="MqttConnectionProfilesDialog.on_samePropertiesCheckBox_toggled"></a>
+<h4>MqttConnectionProfilesDialog.on_samePropertiesCheckBox_toggled</h4>
+<b>on_samePropertiesCheckBox_toggled</b>(<i>checked</i>)
+
+<p>
+        Private slot to handle a change of the properties usage.
+</p>
+<dl>
+
+<dt><i>checked</i> (bool)</dt>
+<dd>
+flag indicating to use the same user properties for
+            CONNECT and DISCONNECT
+</dd>
+</dl>
 <a NAME="MqttConnectionProfilesDialog.on_showPasswordButton_toggled" ID="MqttConnectionProfilesDialog.on_showPasswordButton_toggled"></a>
 <h4>MqttConnectionProfilesDialog.on_showPasswordButton_toggled</h4>
 <b>on_showPasswordButton_toggled</b>(<i>checked</i>)
@@ -622,6 +683,13 @@
 file path
 </dd>
 </dl>
+<a NAME="MqttConnectionProfilesDialog.on_willPropertiesButton_clicked" ID="MqttConnectionProfilesDialog.on_willPropertiesButton_clicked"></a>
+<h4>MqttConnectionProfilesDialog.on_willPropertiesButton_clicked</h4>
+<b>on_willPropertiesButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to edit the last will user properties.
+</p>
 <a NAME="MqttConnectionProfilesDialog.reject" ID="MqttConnectionProfilesDialog.reject"></a>
 <h4>MqttConnectionProfilesDialog.reject</h4>
 <b>reject</b>(<i></i>)
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttMonitorWidget.html	Sat Jul 24 16:50:10 2021 +0200
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttMonitorWidget.html	Sat Jul 24 16:51:29 2021 +0200
@@ -77,6 +77,10 @@
 <td>Private method to add a host name to the list of recently connected brokers.</td>
 </tr>
 <tr>
+<td><a href="#MqttMonitorWidget.__addTopicToRecent">__addTopicToRecent</a></td>
+<td>Private method to add a topic to the list of recently subscribed topics.</td>
+</tr>
+<tr>
 <td><a href="#MqttMonitorWidget.__appendMessage">__appendMessage</a></td>
 <td>Private method to append a received message to the output.</td>
 </tr>
@@ -101,10 +105,18 @@
 <td>Private slot handling a timeout during a connection attempt.</td>
 </tr>
 <tr>
+<td><a href="#MqttMonitorWidget.__createClient">__createClient</a></td>
+<td>Private method to instantiate a MQTT client for a given protocol.</td>
+</tr>
+<tr>
 <td><a href="#MqttMonitorWidget.__directConnectToBroker">__directConnectToBroker</a></td>
 <td>Private method to connect to the broker with entered data.</td>
 </tr>
 <tr>
+<td><a href="#MqttMonitorWidget.__editProperties">__editProperties</a></td>
+<td>Private method to edit user properties of a given type.</td>
+</tr>
+<tr>
 <td><a href="#MqttMonitorWidget.__flashBrokerStatusLabel">__flashBrokerStatusLabel</a></td>
 <td>Private slot to show the broker status label with some text for 5 seconds.</td>
 </tr>
@@ -114,7 +126,11 @@
 </tr>
 <tr>
 <td><a href="#MqttMonitorWidget.__handleBrokerStatusMessage">__handleBrokerStatusMessage</a></td>
-<td>Private method to append a received message to the output.</td>
+<td>Private method to handle a status message of the broker.</td>
+</tr>
+<tr>
+<td><a href="#MqttMonitorWidget.__initPropertiesEditMenu">__initPropertiesEditMenu</a></td>
+<td>Private method to create the properties output context menu.</td>
 </tr>
 <tr>
 <td><a href="#MqttMonitorWidget.__loadDefaultDictFactory">__loadDefaultDictFactory</a></td>
@@ -137,6 +153,10 @@
 <td>Private method to populate the profiles selection box.</td>
 </tr>
 <tr>
+<td><a href="#MqttMonitorWidget.__populateSubscribeTopicComboBox">__populateSubscribeTopicComboBox</a></td>
+<td>Private method to populate the subscribe topic combo box.</td>
+</tr>
+<tr>
 <td><a href="#MqttMonitorWidget.__profileConnectToBroker">__profileConnectToBroker</a></td>
 <td>Private method to connect to the broker with selected profile.</td>
 </tr>
@@ -153,12 +173,24 @@
 <td>Private method to set the connection mode.</td>
 </tr>
 <tr>
+<td><a href="#MqttMonitorWidget.__showProperties">__showProperties</a></td>
+<td>Private method to display the received properties in the properties pane.</td>
+</tr>
+<tr>
 <td><a href="#MqttMonitorWidget.__topicSubscribed">__topicSubscribed</a></td>
-<td>Private slot to handle being subscribed to topics.</td>
+<td>Private slot to handle being subscribed to topics (MQTT v3.1, MQTT v3.1.1).</td>
+</tr>
+<tr>
+<td><a href="#MqttMonitorWidget.__topicSubscribedV5">__topicSubscribedV5</a></td>
+<td>Private slot to handle being subscribed to topics (MQTT v5).</td>
 </tr>
 <tr>
 <td><a href="#MqttMonitorWidget.__topicUnsubscribed">__topicUnsubscribed</a></td>
-<td>Private slot to handle being unsubcribed from a topic.</td>
+<td>Private slot to handle being unsubcribed from a topic (MQTT v3.1, MQTT v3.1.1).</td>
+</tr>
+<tr>
+<td><a href="#MqttMonitorWidget.__topicUnsubscribedV5">__topicUnsubscribedV5</a></td>
+<td>Private slot to handle being unsubscribed to topics (MQTT v5).</td>
 </tr>
 <tr>
 <td><a href="#MqttMonitorWidget.__updatePublishTopicComboBox">__updatePublishTopicComboBox</a></td>
@@ -201,6 +233,10 @@
 <td>Private slot handling the change of the selected profile.</td>
 </tr>
 <tr>
+<td><a href="#MqttMonitorWidget.on_propertiesEdit_customContextMenuRequested">on_propertiesEdit_customContextMenuRequested</a></td>
+<td>Private slot to show the context menu for the properties output.</td>
+</tr>
+<tr>
 <td><a href="#MqttMonitorWidget.on_publishButton_clicked">on_publishButton_clicked</a></td>
 <td>Private slot to publish the entered message.</td>
 </tr>
@@ -209,10 +245,18 @@
 <td>Private slot to clear the publish data fields.</td>
 </tr>
 <tr>
+<td><a href="#MqttMonitorWidget.on_publishClearRetainedButton_clicked">on_publishClearRetainedButton_clicked</a></td>
+<td>Private slot to clear the retained messages for the topic.</td>
+</tr>
+<tr>
 <td><a href="#MqttMonitorWidget.on_publishPayloadFilePicker_textChanged">on_publishPayloadFilePicker_textChanged</a></td>
 <td>Private slot handling a change of path of the payload file.</td>
 </tr>
 <tr>
+<td><a href="#MqttMonitorWidget.on_publishPropertiesButton_clicked">on_publishPropertiesButton_clicked</a></td>
+<td>Private slot to edit the publish user properties.</td>
+</tr>
+<tr>
 <td><a href="#MqttMonitorWidget.on_publishTopicComboBox_editTextChanged">on_publishTopicComboBox_editTextChanged</a></td>
 <td>Private slot to handle changes of the publish topic name.</td>
 </tr>
@@ -229,11 +273,11 @@
 <td>Private slot to subscribe to the entered topic.</td>
 </tr>
 <tr>
-<td><a href="#MqttMonitorWidget.on_subscribeTopicEdit_returnPressed">on_subscribeTopicEdit_returnPressed</a></td>
-<td>Private slot handling the user pressing the return button to subscribe a topic.</td>
+<td><a href="#MqttMonitorWidget.on_subscribePropertiesButton_clicked">on_subscribePropertiesButton_clicked</a></td>
+<td>Private slot to edit the subscribe user properties.</td>
 </tr>
 <tr>
-<td><a href="#MqttMonitorWidget.on_subscribeTopicEdit_textChanged">on_subscribeTopicEdit_textChanged</a></td>
+<td><a href="#MqttMonitorWidget.on_subscribeTopicComboBox_editTextChanged">on_subscribeTopicComboBox_editTextChanged</a></td>
 <td>Private slot to handle a change of the entered topic.</td>
 </tr>
 <tr>
@@ -241,6 +285,10 @@
 <td>Private slot to unsubscribe from the selected topic.</td>
 </tr>
 <tr>
+<td><a href="#MqttMonitorWidget.on_unsubscribePropertiesButton_clicked">on_unsubscribePropertiesButton_clicked</a></td>
+<td>Private slot to edit the unsubscribe user properties.</td>
+</tr>
+<tr>
 <td><a href="#MqttMonitorWidget.on_unsubscribeTopicComboBox_currentIndexChanged">on_unsubscribeTopicComboBox_currentIndexChanged</a></td>
 <td>Private slot to handle the selection of a topic to unsubscribe from.</td>
 </tr>
@@ -293,9 +341,24 @@
 port number of the connection
 </dd>
 </dl>
+<a NAME="MqttMonitorWidget.__addTopicToRecent" ID="MqttMonitorWidget.__addTopicToRecent"></a>
+<h4>MqttMonitorWidget.__addTopicToRecent</h4>
+<b>__addTopicToRecent</b>(<i>topic</i>)
+
+<p>
+        Private method to add a topic to the list of recently subscribed
+        topics.
+</p>
+<dl>
+
+<dt><i>topic</i> (str)</dt>
+<dd>
+subscribed topic
+</dd>
+</dl>
 <a NAME="MqttMonitorWidget.__appendMessage" ID="MqttMonitorWidget.__appendMessage"></a>
 <h4>MqttMonitorWidget.__appendMessage</h4>
-<b>__appendMessage</b>(<i>topic, payload, qos</i>)
+<b>__appendMessage</b>(<i>topic, payload, qos, retain, properties=None</i>)
 
 <p>
         Private method to append a received message to the output.
@@ -314,10 +377,18 @@
 <dd>
 quality of service indicator (0, 1, 2)
 </dd>
+<dt><i>retain</i> (bool)</dt>
+<dd>
+flag indicating a retained message
+</dd>
+<dt><i>properties</i> (dict)</dt>
+<dd>
+properties sent with the message (MQTT v5)
+</dd>
 </dl>
 <a NAME="MqttMonitorWidget.__brokerConnected" ID="MqttMonitorWidget.__brokerConnected"></a>
 <h4>MqttMonitorWidget.__brokerConnected</h4>
-<b>__brokerConnected</b>(<i>flags, rc</i>)
+<b>__brokerConnected</b>(<i>flags, rc, packetType=None, properties=None</i>)
 
 <p>
         Private slot to handle being connected to a broker.
@@ -330,12 +401,21 @@
 </dd>
 <dt><i>rc</i> (int)</dt>
 <dd>
-CONNACK result code
+CONNACK result code or MQTTv5 reason code
+</dd>
+<dt><i>packetType</i> (int)</dt>
+<dd>
+packet type as reported by the client
+</dd>
+<dt><i>properties</i> (dict)</dt>
+<dd>
+dictionary containing the received connection
+            properties
 </dd>
 </dl>
 <a NAME="MqttMonitorWidget.__brokerDisconnected" ID="MqttMonitorWidget.__brokerDisconnected"></a>
 <h4>MqttMonitorWidget.__brokerDisconnected</h4>
-<b>__brokerDisconnected</b>(<i>rc</i>)
+<b>__brokerDisconnected</b>(<i>rc, packetType=None</i>)
 
 <p>
         Private slot to handle a disconnection from the broker.
@@ -346,6 +426,10 @@
 <dd>
 MQTT error result code
 </dd>
+<dt><i>packetType</i> (int)</dt>
+<dd>
+packet type as reported by the client
+</dd>
 </dl>
 <a NAME="MqttMonitorWidget.__clearBrokerStatusLabels" ID="MqttMonitorWidget.__clearBrokerStatusLabels"></a>
 <h4>MqttMonitorWidget.__clearBrokerStatusLabels</h4>
@@ -379,6 +463,40 @@
 <p>
         Private slot handling a timeout during a connection attempt.
 </p>
+<a NAME="MqttMonitorWidget.__createClient" ID="MqttMonitorWidget.__createClient"></a>
+<h4>MqttMonitorWidget.__createClient</h4>
+<b>__createClient</b>(<i>clientId="", cleanSession=None, protocol=None</i>)
+
+<p>
+        Private method to instantiate a MQTT client for a given protocol.
+</p>
+<dl>
+
+<dt><i>clientId</i> (str)</dt>
+<dd>
+ID to be used for the client
+</dd>
+<dt><i>cleanSession</i> (bool)</dt>
+<dd>
+flag indicating to start a clean session
+</dd>
+<dt><i>protocol</i> (MqttProtocols or int (optional))</dt>
+<dd>
+MQTT protocol version to be used (defaults to None)
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+created and connected MQTT client object
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+MqttClient
+</dd>
+</dl>
 <a NAME="MqttMonitorWidget.__directConnectToBroker" ID="MqttMonitorWidget.__directConnectToBroker"></a>
 <h4>MqttMonitorWidget.__directConnectToBroker</h4>
 <b>__directConnectToBroker</b>(<i></i>)
@@ -386,6 +504,29 @@
 <p>
         Private method to connect to the broker with entered data.
 </p>
+<a NAME="MqttMonitorWidget.__editProperties" ID="MqttMonitorWidget.__editProperties"></a>
+<h4>MqttMonitorWidget.__editProperties</h4>
+<b>__editProperties</b>(<i>propertiesType, header, key</i>)
+
+<p>
+        Private method to edit user properties of a given type.
+</p>
+<dl>
+
+<dt><i>propertiesType</i> (str)</dt>
+<dd>
+properties type (one of 'subscribe',
+            'unsubscribe', 'publish')
+</dd>
+<dt><i>header</i> (str)</dt>
+<dd>
+header to be shown in the edit dialog
+</dd>
+<dt><i>key</i> (str)</dt>
+<dd>
+key to retrieve the right properties
+</dd>
+</dl>
 <a NAME="MqttMonitorWidget.__flashBrokerStatusLabel" ID="MqttMonitorWidget.__flashBrokerStatusLabel"></a>
 <h4>MqttMonitorWidget.__flashBrokerStatusLabel</h4>
 <b>__flashBrokerStatusLabel</b>(<i>message</i>)
@@ -425,7 +566,7 @@
 <b>__handleBrokerStatusMessage</b>(<i>topic, payload</i>)
 
 <p>
-        Private method to append a received message to the output.
+        Private method to handle a status message of the broker.
 </p>
 <dl>
 
@@ -438,6 +579,13 @@
 payload of the received message
 </dd>
 </dl>
+<a NAME="MqttMonitorWidget.__initPropertiesEditMenu" ID="MqttMonitorWidget.__initPropertiesEditMenu"></a>
+<h4>MqttMonitorWidget.__initPropertiesEditMenu</h4>
+<b>__initPropertiesEditMenu</b>(<i></i>)
+
+<p>
+        Private method to create the properties output context menu.
+</p>
 <a NAME="MqttMonitorWidget.__loadDefaultDictFactory" ID="MqttMonitorWidget.__loadDefaultDictFactory"></a>
 <h4>MqttMonitorWidget.__loadDefaultDictFactory</h4>
 <b>__loadDefaultDictFactory</b>(<i></i>)
@@ -473,7 +621,7 @@
 </dl>
 <a NAME="MqttMonitorWidget.__messageReceived" ID="MqttMonitorWidget.__messageReceived"></a>
 <h4>MqttMonitorWidget.__messageReceived</h4>
-<b>__messageReceived</b>(<i>topic, payload, qos, retain</i>)
+<b>__messageReceived</b>(<i>topic, payload, qos, retain, properties=None</i>)
 
 <p>
         Private slot to handle the receipt of a message.
@@ -496,6 +644,10 @@
 <dd>
 flag indicating a retained message
 </dd>
+<dt><i>properties</i> (Properties)</dt>
+<dd>
+properties sent with the message (MQTT v5)
+</dd>
 </dl>
 <a NAME="MqttMonitorWidget.__populateBrokerComboBoxes" ID="MqttMonitorWidget.__populateBrokerComboBoxes"></a>
 <h4>MqttMonitorWidget.__populateBrokerComboBoxes</h4>
@@ -511,6 +663,13 @@
 <p>
         Private method to populate the profiles selection box.
 </p>
+<a NAME="MqttMonitorWidget.__populateSubscribeTopicComboBox" ID="MqttMonitorWidget.__populateSubscribeTopicComboBox"></a>
+<h4>MqttMonitorWidget.__populateSubscribeTopicComboBox</h4>
+<b>__populateSubscribeTopicComboBox</b>(<i></i>)
+
+<p>
+        Private method to populate the subscribe topic combo box.
+</p>
 <a NAME="MqttMonitorWidget.__profileConnectToBroker" ID="MqttMonitorWidget.__profileConnectToBroker"></a>
 <h4>MqttMonitorWidget.__profileConnectToBroker</h4>
 <b>__profileConnectToBroker</b>(<i></i>)
@@ -554,12 +713,46 @@
 flag indicating the profile connection mode
 </dd>
 </dl>
+<a NAME="MqttMonitorWidget.__showProperties" ID="MqttMonitorWidget.__showProperties"></a>
+<h4>MqttMonitorWidget.__showProperties</h4>
+<b>__showProperties</b>(<i>typeStr, properties</i>)
+
+<p>
+        Private method to display the received properties in the properties
+        pane.
+</p>
+<dl>
+
+<dt><i>typeStr</i> (str)</dt>
+<dd>
+message type
+</dd>
+<dt><i>properties</i> (dict)</dt>
+<dd>
+dictionary containing the relevant properties
+</dd>
+</dl>
 <a NAME="MqttMonitorWidget.__topicSubscribed" ID="MqttMonitorWidget.__topicSubscribed"></a>
 <h4>MqttMonitorWidget.__topicSubscribed</h4>
-<b>__topicSubscribed</b>(<i>mid, grantedQos</i>)
+<b>__topicSubscribed</b>(<i>mid</i>)
 
 <p>
-        Private slot to handle being subscribed to topics.
+        Private slot to handle being subscribed to topics (MQTT v3.1,
+        MQTT v3.1.1).
+</p>
+<dl>
+
+<dt><i>mid</i> (int)</dt>
+<dd>
+ID of the subscribe request
+</dd>
+</dl>
+<a NAME="MqttMonitorWidget.__topicSubscribedV5" ID="MqttMonitorWidget.__topicSubscribedV5"></a>
+<h4>MqttMonitorWidget.__topicSubscribedV5</h4>
+<b>__topicSubscribedV5</b>(<i>mid, reasonCodes, properties</i>)
+
+<p>
+        Private slot to handle being subscribed to topics (MQTT v5).
 </p>
 <dl>
 
@@ -567,9 +760,14 @@
 <dd>
 ID of the subscribe request
 </dd>
-<dt><i>grantedQos</i> (tuple of int)</dt>
+<dt><i>reasonCodes</i> (list of ReasonCodes)</dt>
 <dd>
-tuple of granted quality of service
+list of reason codes, one for each topic
+</dd>
+<dt><i>properties</i> (dict)</dt>
+<dd>
+dictionary containing the received subscribe
+            properties
 </dd>
 </dl>
 <a NAME="MqttMonitorWidget.__topicUnsubscribed" ID="MqttMonitorWidget.__topicUnsubscribed"></a>
@@ -577,7 +775,8 @@
 <b>__topicUnsubscribed</b>(<i>mid</i>)
 
 <p>
-        Private slot to handle being unsubcribed from a topic.
+        Private slot to handle being unsubcribed from a topic (MQTT v3.1,
+        MQTT v3.1.1).
 </p>
 <dl>
 
@@ -586,6 +785,33 @@
 ID of the unsubscribe request
 </dd>
 </dl>
+<a NAME="MqttMonitorWidget.__topicUnsubscribedV5" ID="MqttMonitorWidget.__topicUnsubscribedV5"></a>
+<h4>MqttMonitorWidget.__topicUnsubscribedV5</h4>
+<b>__topicUnsubscribedV5</b>(<i>mid, rc, packetType, properties</i>)
+
+<p>
+        Private slot to handle being unsubscribed to topics (MQTT v5).
+</p>
+<dl>
+
+<dt><i>mid</i> (int)</dt>
+<dd>
+ID of the subscribe request
+</dd>
+<dt><i>rc</i> (int)</dt>
+<dd>
+MQTTv5 reason code
+</dd>
+<dt><i>packetType</i> (int)</dt>
+<dd>
+packet type as reported by the client
+</dd>
+<dt><i>properties</i> (dict)</dt>
+<dd>
+dictionary containing the received subscribe
+            properties
+</dd>
+</dl>
 <a NAME="MqttMonitorWidget.__updatePublishTopicComboBox" ID="MqttMonitorWidget.__updatePublishTopicComboBox"></a>
 <h4>MqttMonitorWidget.__updatePublishTopicComboBox</h4>
 <b>__updatePublishTopicComboBox</b>(<i>resetTopic=True</i>)
@@ -693,6 +919,20 @@
 name of the selected profile
 </dd>
 </dl>
+<a NAME="MqttMonitorWidget.on_propertiesEdit_customContextMenuRequested" ID="MqttMonitorWidget.on_propertiesEdit_customContextMenuRequested"></a>
+<h4>MqttMonitorWidget.on_propertiesEdit_customContextMenuRequested</h4>
+<b>on_propertiesEdit_customContextMenuRequested</b>(<i>pos</i>)
+
+<p>
+        Private slot to show the context menu for the properties output.
+</p>
+<dl>
+
+<dt><i>pos</i> (QPoint)</dt>
+<dd>
+the position of the mouse pointer
+</dd>
+</dl>
 <a NAME="MqttMonitorWidget.on_publishButton_clicked" ID="MqttMonitorWidget.on_publishButton_clicked"></a>
 <h4>MqttMonitorWidget.on_publishButton_clicked</h4>
 <b>on_publishButton_clicked</b>(<i></i>)
@@ -707,6 +947,13 @@
 <p>
         Private slot to clear the publish data fields.
 </p>
+<a NAME="MqttMonitorWidget.on_publishClearRetainedButton_clicked" ID="MqttMonitorWidget.on_publishClearRetainedButton_clicked"></a>
+<h4>MqttMonitorWidget.on_publishClearRetainedButton_clicked</h4>
+<b>on_publishClearRetainedButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to clear the retained messages for the topic.
+</p>
 <a NAME="MqttMonitorWidget.on_publishPayloadFilePicker_textChanged" ID="MqttMonitorWidget.on_publishPayloadFilePicker_textChanged"></a>
 <h4>MqttMonitorWidget.on_publishPayloadFilePicker_textChanged</h4>
 <b>on_publishPayloadFilePicker_textChanged</b>(<i>path</i>)
@@ -721,6 +968,13 @@
 path of the payload file
 </dd>
 </dl>
+<a NAME="MqttMonitorWidget.on_publishPropertiesButton_clicked" ID="MqttMonitorWidget.on_publishPropertiesButton_clicked"></a>
+<h4>MqttMonitorWidget.on_publishPropertiesButton_clicked</h4>
+<b>on_publishPropertiesButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to edit the publish user properties.
+</p>
 <a NAME="MqttMonitorWidget.on_publishTopicComboBox_editTextChanged" ID="MqttMonitorWidget.on_publishTopicComboBox_editTextChanged"></a>
 <h4>MqttMonitorWidget.on_publishTopicComboBox_editTextChanged</h4>
 <b>on_publishTopicComboBox_editTextChanged</b>(<i>topic</i>)
@@ -756,17 +1010,16 @@
 <p>
         Private slot to subscribe to the entered topic.
 </p>
-<a NAME="MqttMonitorWidget.on_subscribeTopicEdit_returnPressed" ID="MqttMonitorWidget.on_subscribeTopicEdit_returnPressed"></a>
-<h4>MqttMonitorWidget.on_subscribeTopicEdit_returnPressed</h4>
-<b>on_subscribeTopicEdit_returnPressed</b>(<i></i>)
+<a NAME="MqttMonitorWidget.on_subscribePropertiesButton_clicked" ID="MqttMonitorWidget.on_subscribePropertiesButton_clicked"></a>
+<h4>MqttMonitorWidget.on_subscribePropertiesButton_clicked</h4>
+<b>on_subscribePropertiesButton_clicked</b>(<i></i>)
 
 <p>
-        Private slot handling the user pressing the return button to subscribe
-        a topic.
+        Private slot to edit the subscribe user properties.
 </p>
-<a NAME="MqttMonitorWidget.on_subscribeTopicEdit_textChanged" ID="MqttMonitorWidget.on_subscribeTopicEdit_textChanged"></a>
-<h4>MqttMonitorWidget.on_subscribeTopicEdit_textChanged</h4>
-<b>on_subscribeTopicEdit_textChanged</b>(<i>topic</i>)
+<a NAME="MqttMonitorWidget.on_subscribeTopicComboBox_editTextChanged" ID="MqttMonitorWidget.on_subscribeTopicComboBox_editTextChanged"></a>
+<h4>MqttMonitorWidget.on_subscribeTopicComboBox_editTextChanged</h4>
+<b>on_subscribeTopicComboBox_editTextChanged</b>(<i>topic</i>)
 
 <p>
         Private slot to handle a change of the entered topic.
@@ -785,6 +1038,13 @@
 <p>
         Private slot to unsubscribe from the selected topic.
 </p>
+<a NAME="MqttMonitorWidget.on_unsubscribePropertiesButton_clicked" ID="MqttMonitorWidget.on_unsubscribePropertiesButton_clicked"></a>
+<h4>MqttMonitorWidget.on_unsubscribePropertiesButton_clicked</h4>
+<b>on_unsubscribePropertiesButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to edit the unsubscribe user properties.
+</p>
 <a NAME="MqttMonitorWidget.on_unsubscribeTopicComboBox_currentIndexChanged" ID="MqttMonitorWidget.on_unsubscribeTopicComboBox_currentIndexChanged"></a>
 <h4>MqttMonitorWidget.on_unsubscribeTopicComboBox_currentIndexChanged</h4>
 <b>on_unsubscribeTopicComboBox_currentIndexChanged</b>(<i>topic</i>)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttProtocols.html	Sat Jul 24 16:51:29 2021 +0200
@@ -0,0 +1,116 @@
+<!DOCTYPE html>
+<html><head>
+<title>Plugin_Mqtt_Monitor.MqttMonitor.MqttProtocols</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>Plugin_Mqtt_Monitor.MqttMonitor.MqttProtocols</h1>
+
+<p>
+Module implementing an enum defining the supported MQTT protocol versions.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+
+<tr>
+<td><a href="#MqttProtocols">MqttProtocols</a></td>
+<td>Class defining the supported MQTT protocol versions.</td>
+</tr>
+<tr>
+<td><a href="#MqttProtocols_1">MqttProtocols</a></td>
+<td>Class defining the supported MQTT protocol versions.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr />
+<hr />
+<a NAME="MqttProtocols" ID="MqttProtocols"></a>
+<h2>MqttProtocols</h2>
+
+<p>
+        Class defining the supported MQTT protocol versions.
+</p>
+<h3>Derived from</h3>
+enum.IntEnum
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>MQTTv31</td></tr><tr><td>MQTTv311</td></tr><tr><td>MQTTv5</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="MqttProtocols_1" ID="MqttProtocols_1"></a>
+<h2>MqttProtocols</h2>
+
+<p>
+        Class defining the supported MQTT protocol versions.
+</p>
+<h3>Derived from</h3>
+enum.IntEnum
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>MQTTv31</td></tr><tr><td>MQTTv311</td></tr><tr><td>MQTTv5</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttReasonCodes.html	Sat Jul 24 16:51:29 2021 +0200
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html><head>
+<title>Plugin_Mqtt_Monitor.MqttMonitor.MqttReasonCodes</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>Plugin_Mqtt_Monitor.MqttMonitor.MqttReasonCodes</h1>
+
+<p>
+Module implementing the translated MQTT v5 reason codes.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>MqttReasonCodeNames</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+
+<tr>
+<td><a href="#mqttReasonCode">mqttReasonCode</a></td>
+<td>Function to get the readable reason code string given the result code and the packet type.</td>
+</tr>
+</table>
+<hr />
+<hr />
+<a NAME="mqttReasonCode" ID="mqttReasonCode"></a>
+<h2>mqttReasonCode</h2>
+<b>mqttReasonCode</b>(<i>rc, packetType</i>)
+
+<p>
+    Function to get the readable reason code string given the result code and
+    the packet type.
+</p>
+<dl>
+
+<dt><i>rc</i> (int)</dt>
+<dd>
+result code
+</dd>
+<dt><i>packetType</i> (PacketTypes (= int))</dt>
+<dd>
+packet type
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+message associated with the reason code and packet type
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttUserPropertiesEditor.html	Sat Jul 24 16:51:29 2021 +0200
@@ -0,0 +1,268 @@
+<!DOCTYPE html>
+<html><head>
+<title>Plugin_Mqtt_Monitor.MqttMonitor.MqttUserPropertiesEditor</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>Plugin_Mqtt_Monitor.MqttMonitor.MqttUserPropertiesEditor</h1>
+
+<p>
+Module implementing an editor for MQTT v5 user properties.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+
+<tr>
+<td><a href="#MqttUserPropertiesEditor">MqttUserPropertiesEditor</a></td>
+<td>Class implementing an editor for MQTT v5 user properties.</td>
+</tr>
+<tr>
+<td><a href="#MqttUserPropertiesEditorDialog">MqttUserPropertiesEditorDialog</a></td>
+<td>Class implementing an editor dialog for MQTT v5 user properties.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr />
+<hr />
+<a NAME="MqttUserPropertiesEditor" ID="MqttUserPropertiesEditor"></a>
+<h2>MqttUserPropertiesEditor</h2>
+
+<p>
+    Class implementing an editor for MQTT v5 user properties.
+</p>
+<h3>Derived from</h3>
+QWidget, Ui_MqttUserPropertiesEditor
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#MqttUserPropertiesEditor.__init__">MqttUserPropertiesEditor</a></td>
+<td>Constructor</td>
+</tr>
+<tr>
+<td><a href="#MqttUserPropertiesEditor.clear">clear</a></td>
+<td>Public slot to delete all properties.</td>
+</tr>
+<tr>
+<td><a href="#MqttUserPropertiesEditor.getProperties">getProperties</a></td>
+<td>Public method to get the list of defined user properties.</td>
+</tr>
+<tr>
+<td><a href="#MqttUserPropertiesEditor.on_addButton_clicked">on_addButton_clicked</a></td>
+<td>Private slot to add a row to the table.</td>
+</tr>
+<tr>
+<td><a href="#MqttUserPropertiesEditor.on_deleteButton_clicked">on_deleteButton_clicked</a></td>
+<td>Private slot to delete the selected rows.</td>
+</tr>
+<tr>
+<td><a href="#MqttUserPropertiesEditor.on_propertiesTable_itemSelectionChanged">on_propertiesTable_itemSelectionChanged</a></td>
+<td>Private slot to handle the selection of rows.</td>
+</tr>
+<tr>
+<td><a href="#MqttUserPropertiesEditor.setProperties">setProperties</a></td>
+<td>Public method to populate the editor with a list of user properties.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="MqttUserPropertiesEditor.__init__" ID="MqttUserPropertiesEditor.__init__"></a>
+<h4>MqttUserPropertiesEditor (Constructor)</h4>
+<b>MqttUserPropertiesEditor</b>(<i>parent=None</i>)
+
+<p>
+        Constructor
+</p>
+<dl>
+
+<dt><i>parent</i> (QWidget (optional))</dt>
+<dd>
+reference to the parent widget (defaults to None)
+</dd>
+</dl>
+<a NAME="MqttUserPropertiesEditor.clear" ID="MqttUserPropertiesEditor.clear"></a>
+<h4>MqttUserPropertiesEditor.clear</h4>
+<b>clear</b>(<i></i>)
+
+<p>
+        Public slot to delete all properties.
+</p>
+<a NAME="MqttUserPropertiesEditor.getProperties" ID="MqttUserPropertiesEditor.getProperties"></a>
+<h4>MqttUserPropertiesEditor.getProperties</h4>
+<b>getProperties</b>(<i></i>)
+
+<p>
+        Public method to get the list of defined user properties.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+list of defined user properties
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of tuple of (str, str)
+</dd>
+</dl>
+<a NAME="MqttUserPropertiesEditor.on_addButton_clicked" ID="MqttUserPropertiesEditor.on_addButton_clicked"></a>
+<h4>MqttUserPropertiesEditor.on_addButton_clicked</h4>
+<b>on_addButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to add a row to the table.
+</p>
+<a NAME="MqttUserPropertiesEditor.on_deleteButton_clicked" ID="MqttUserPropertiesEditor.on_deleteButton_clicked"></a>
+<h4>MqttUserPropertiesEditor.on_deleteButton_clicked</h4>
+<b>on_deleteButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to delete the selected rows.
+</p>
+<a NAME="MqttUserPropertiesEditor.on_propertiesTable_itemSelectionChanged" ID="MqttUserPropertiesEditor.on_propertiesTable_itemSelectionChanged"></a>
+<h4>MqttUserPropertiesEditor.on_propertiesTable_itemSelectionChanged</h4>
+<b>on_propertiesTable_itemSelectionChanged</b>(<i></i>)
+
+<p>
+        Private slot to handle the selection of rows.
+</p>
+<a NAME="MqttUserPropertiesEditor.setProperties" ID="MqttUserPropertiesEditor.setProperties"></a>
+<h4>MqttUserPropertiesEditor.setProperties</h4>
+<b>setProperties</b>(<i>properties</i>)
+
+<p>
+        Public method to populate the editor with a list of user properties.
+</p>
+<dl>
+
+<dt><i>properties</i> (list of tuple of (str, str))</dt>
+<dd>
+list of defined user properties
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="MqttUserPropertiesEditorDialog" ID="MqttUserPropertiesEditorDialog"></a>
+<h2>MqttUserPropertiesEditorDialog</h2>
+
+<p>
+    Class implementing an editor dialog for MQTT v5 user properties.
+</p>
+<h3>Derived from</h3>
+QDialog
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#MqttUserPropertiesEditorDialog.__init__">MqttUserPropertiesEditorDialog</a></td>
+<td>Constructor</td>
+</tr>
+<tr>
+<td><a href="#MqttUserPropertiesEditorDialog.getProperties">getProperties</a></td>
+<td>Public method to get the list of defined user properties.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="MqttUserPropertiesEditorDialog.__init__" ID="MqttUserPropertiesEditorDialog.__init__"></a>
+<h4>MqttUserPropertiesEditorDialog (Constructor)</h4>
+<b>MqttUserPropertiesEditorDialog</b>(<i>header, properties, parent=None</i>)
+
+<p>
+        Constructor
+</p>
+<dl>
+
+<dt><i>header</i> (str)</dt>
+<dd>
+text to be shown in the dialog header label
+</dd>
+<dt><i>properties</i> (list of tuple of (str, str))</dt>
+<dd>
+list of defined user properties
+</dd>
+<dt><i>parent</i> (QWidget (optional))</dt>
+<dd>
+reference to the parent widget (defaults to None)
+</dd>
+</dl>
+<a NAME="MqttUserPropertiesEditorDialog.getProperties" ID="MqttUserPropertiesEditorDialog.getProperties"></a>
+<h4>MqttUserPropertiesEditorDialog.getProperties</h4>
+<b>getProperties</b>(<i></i>)
+
+<p>
+        Public method to get the list of defined user properties.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+list of defined user properties
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of tuple of (str, str)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.PluginMqttMonitor.html	Sat Jul 24 16:50:10 2021 +0200
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.PluginMqttMonitor.html	Sat Jul 24 16:51:29 2021 +0200
@@ -28,7 +28,7 @@
 <h3>Global Attributes</h3>
 
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>mqttPluginObject</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 
@@ -44,10 +44,18 @@
 <table>
 
 <tr>
+<td><a href="#createMqttPage">createMqttPage</a></td>
+<td>Module function to create the autocompletion configuration page.</td>
+</tr>
+<tr>
 <td><a href="#exeDisplayData">exeDisplayData</a></td>
 <td>Module function to support the display of some executable info.</td>
 </tr>
 <tr>
+<td><a href="#getConfigData">getConfigData</a></td>
+<td>Module function returning data as required by the configuration dialog.</td>
+</tr>
+<tr>
 <td><a href="#installDependencies">installDependencies</a></td>
 <td>Function to install dependencies of this plug-in.</td>
 </tr>
@@ -227,6 +235,35 @@
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
+<a NAME="createMqttPage" ID="createMqttPage"></a>
+<h2>createMqttPage</h2>
+<b>createMqttPage</b>(<i>configDlg</i>)
+
+<p>
+    Module function to create the autocompletion configuration page.
+</p>
+<dl>
+
+<dt><i>configDlg</i> (ConfigurationWidget)</dt>
+<dd>
+reference to the configuration dialog
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+reference to the configuration page
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+AutoCompletionRopePage
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
 <a NAME="exeDisplayData" ID="exeDisplayData"></a>
 <h2>exeDisplayData</h2>
 <b>exeDisplayData</b>(<i></i>)
@@ -250,6 +287,28 @@
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
+<a NAME="getConfigData" ID="getConfigData"></a>
+<h2>getConfigData</h2>
+<b>getConfigData</b>(<i></i>)
+
+<p>
+    Module function returning data as required by the configuration dialog.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+dictionary containing the relevant data
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
 <a NAME="installDependencies" ID="installDependencies"></a>
 <h2>installDependencies</h2>
 <b>installDependencies</b>(<i>pipInstall</i>)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MqttMonitor/Documentation/source/index-Plugin_Mqtt_Monitor.MqttMonitor.ConfigurationPage.html	Sat Jul 24 16:51:29 2021 +0200
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html><head>
+<title>Plugin_Mqtt_Monitor.MqttMonitor.ConfigurationPage</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<h1>Plugin_Mqtt_Monitor.MqttMonitor.ConfigurationPage</h1>
+
+<p>
+Package implementing the MQTT Monitor page of the configuration dialog.
+</p>
+
+
+<h3>Modules</h3>
+<table>
+
+<tr>
+<td><a href="Plugin_Mqtt_Monitor.MqttMonitor.ConfigurationPage.MqttPage.html">MqttPage</a></td>
+<td>Module implementing the MQTT Monitor configuration page.</td>
+</tr>
+</table>
+</body></html>
\ No newline at end of file
--- a/MqttMonitor/Documentation/source/index-Plugin_Mqtt_Monitor.MqttMonitor.html	Sat Jul 24 16:50:10 2021 +0200
+++ b/MqttMonitor/Documentation/source/index-Plugin_Mqtt_Monitor.MqttMonitor.html	Sat Jul 24 16:51:29 2021 +0200
@@ -25,6 +25,14 @@
 Package containing the MQTT Monitor modules and data files.
 </p>
 
+<h3>Packages</h3>
+<table>
+
+<tr>
+<td><a href="index-Plugin_Mqtt_Monitor.MqttMonitor.ConfigurationPage.html">ConfigurationPage</a></td>
+<td>Package implementing the MQTT Monitor page of the configuration dialog.</td>
+</tr>
+</table>
 
 <h3>Modules</h3>
 <table>
@@ -45,5 +53,17 @@
 <td><a href="Plugin_Mqtt_Monitor.MqttMonitor.MqttMonitorWidget.html">MqttMonitorWidget</a></td>
 <td>Module implementing the MQTT Monitor widget.</td>
 </tr>
+<tr>
+<td><a href="Plugin_Mqtt_Monitor.MqttMonitor.MqttProtocols.html">MqttProtocols</a></td>
+<td>Module implementing an enum defining the supported MQTT protocol versions.</td>
+</tr>
+<tr>
+<td><a href="Plugin_Mqtt_Monitor.MqttMonitor.MqttReasonCodes.html">MqttReasonCodes</a></td>
+<td>Module implementing the translated MQTT v5 reason codes.</td>
+</tr>
+<tr>
+<td><a href="Plugin_Mqtt_Monitor.MqttMonitor.MqttUserPropertiesEditor.html">MqttUserPropertiesEditor</a></td>
+<td>Module implementing an editor for MQTT v5 user properties.</td>
+</tr>
 </table>
 </body></html>
\ No newline at end of file

eric ide

mercurial