diff -r d439c5109829 -r 82845c0fd550 PluginMqttMonitor.py --- a/PluginMqttMonitor.py Sun Aug 26 19:40:15 2018 +0200 +++ b/PluginMqttMonitor.py Mon Aug 27 19:26:27 2018 +0200 @@ -18,13 +18,14 @@ from E5Gui.E5Action import E5Action import UI.PixmapCache +import Preferences # Start-Of-Header name = "MQTT Monitor Plugin" author = "Detlev Offenbach <detlev@die-offenbachs.de>" autoactivate = True deactivateable = True -version = "1.x" +version = "1.0.0" className = "MqttMonitorPlugin" packageName = "MqttMonitor" shortDescription = "Plug-in implementing a tool to connect to a MQTT broker" @@ -66,10 +67,19 @@ return data +def prepareUninstall(): + """ + Module function to prepare for an uninstallation. + """ + Preferences.Prefs.settings.remove(MqttMonitorPlugin.PreferencesKey) + + class MqttMonitorPlugin(QObject): """ Class implementing the MQTT Monitor plug-in. """ + PreferencesKey = "MqttMonitor" + def __init__(self, ui): """ Constructor @@ -81,6 +91,10 @@ self.__ui = ui self.__initialize() + self.__defaults = { + "RecentBrokers": [], + } + self.__translator = None self.__loadTranslator() @@ -106,12 +120,9 @@ error = self.tr("The 'paho-mqtt' package is not available.") return None, False -## self.__object = MqttMonitorWidget(self, self.__ui) -## self.__object.activate() -## e5App().registerPluginObject("MqttMonitor", self.__object) from MqttMonitor.MqttMonitorWidget import MqttMonitorWidget - self.__widget = MqttMonitorWidget()##self.__ui) + self.__widget = MqttMonitorWidget(self) self.__ui.addSideWidget( self.__ui.RightSide, self.__widget, UI.PixmapCache.getIcon( @@ -143,8 +154,6 @@ """ Public method to deactivate this plug-in. """ -## e5App().unregisterPluginObject("TimeTracker") -## self.__object.deactivate() menu = self.__ui.getMenu("subwindow") menu.removeAction(self.__activateAct) self.__ui.removeE5Actions([self.__activateAct], 'ui') @@ -191,3 +200,30 @@ else: self.__widget.show() self.__widget.setFocus(Qt.ActiveWindowFocusReason) + + def getPreferences(self, key): + """ + Public method to retrieve the various settings. + + @param key the key of the value to get + @return the requested setting + """ + if key in ["RecentBrokers"]: + return Preferences.toList(Preferences.Prefs.settings.value( + self.PreferencesKey + "/" + key, self.__defaults[key])) + else: + return Preferences.Prefs.settings.value( + self.PreferencesKey + "/" + key, self.__defaults[key]) + + def setPreferences(self, key, value): + """ + Public method to store the various settings. + + @param key the key of the setting to be set (string) + @param value the value to be set + """ + Preferences.Prefs.settings.setValue( + self.PreferencesKey + "/" + key, value) + +# +# eflag: noqa = M801