diff --git a/libnymea/devices/deviceplugin.cpp b/libnymea/devices/deviceplugin.cpp index 7871c159..f335fa1d 100644 --- a/libnymea/devices/deviceplugin.cpp +++ b/libnymea/devices/deviceplugin.cpp @@ -110,6 +110,7 @@ #include #include #include +#include /*! DevicePlugin constructor. DevicePlugins will be instantiated by the DeviceManager, its \a parent. */ DevicePlugin::DevicePlugin(QObject *parent): @@ -340,7 +341,7 @@ void DevicePlugin::initPlugin(const PluginMetadata &metadata, DeviceManager *dev m_metaData = metadata; m_deviceManager = deviceManager; m_hardwareManager = hardwareManager; - + m_storage = new QSettings(NymeaSettings::settingsPath() + "/pluginconfig-" + pluginId().toString().remove(QRegExp("[{}]")) + ".conf", QSettings::IniFormat, this); } /*! Returns a map containing the plugin configuration. @@ -432,6 +433,14 @@ HardwareManager *DevicePlugin::hardwareManager() const return m_hardwareManager; } +/*! Returns a pointer to a QSettings object which is reserved for this plugin. + The plugin can store arbitrary data in this. + */ +QSettings* DevicePlugin::pluginStorage() const +{ + return m_storage; +} + void DevicePlugin::setMetaData(const PluginMetadata &metaData) { m_metaData = metaData; diff --git a/libnymea/devices/deviceplugin.h b/libnymea/devices/deviceplugin.h index 5d51f6f0..034f06e6 100644 --- a/libnymea/devices/deviceplugin.h +++ b/libnymea/devices/deviceplugin.h @@ -54,6 +54,7 @@ #include #include #include +#include class DeviceManager; @@ -111,6 +112,7 @@ signals: protected: Devices myDevices() const; HardwareManager *hardwareManager() const; + QSettings *pluginStorage() const; private: void setMetaData(const PluginMetadata &metaData); @@ -127,6 +129,7 @@ private: DeviceManager *m_deviceManager = nullptr; HardwareManager *m_hardwareManager = nullptr; + QSettings *m_storage = nullptr; PluginMetadata m_metaData; ParamList m_config;