From 0b7176c6f4945d9aed2dcf87bee46405dae14f96 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Fri, 19 Jul 2019 14:40:14 +0200 Subject: [PATCH] Re-enable the default ctor for BrowseResults This opens up the possibility for the plugin dev to mess up the request id if [s]he creates a new one instead of using the one given by the api, but not being able to keep results in a Qt container is not a price I am willing to pay for this. After all it'S going to be very visible on the first test to the plugin dev if this deosn't match. --- libnymea-core/devices/devicemanagerimplementation.cpp | 4 ++-- libnymea/devices/device.h | 6 ++---- libnymea/devices/devicemanager.cpp | 10 ---------- libnymea/devices/devicemanager.h | 5 ----- 4 files changed, 4 insertions(+), 21 deletions(-) diff --git a/libnymea-core/devices/devicemanagerimplementation.cpp b/libnymea-core/devices/devicemanagerimplementation.cpp index 85b2dff9..6b267d3e 100644 --- a/libnymea-core/devices/devicemanagerimplementation.cpp +++ b/libnymea-core/devices/devicemanagerimplementation.cpp @@ -712,7 +712,7 @@ Device::DeviceError DeviceManagerImplementation::removeConfiguredDevice(const De Device::BrowseResult DeviceManagerImplementation::browseDevice(const DeviceId &deviceId, const QString &itemId, const QLocale &locale) { - Device::BrowseResult result = createBrowseResult(); + Device::BrowseResult result; Device *device = m_configuredDevices.value(deviceId); if (!device) { @@ -733,7 +733,7 @@ Device::BrowseResult DeviceManagerImplementation::browseDevice(const DeviceId &d Device::BrowserItemResult DeviceManagerImplementation::browserItemDetails(const DeviceId &deviceId, const QString &itemId, const QLocale &locale) { - Device::BrowserItemResult result = createBrowserItemResult(); + Device::BrowserItemResult result; Device *device = m_configuredDevices.value(deviceId); if (!device) { diff --git a/libnymea/devices/device.h b/libnymea/devices/device.h index 89e54fa8..bd83f3fe 100644 --- a/libnymea/devices/device.h +++ b/libnymea/devices/device.h @@ -85,24 +85,22 @@ public: class BrowseResult { public: + BrowseResult(): m_id(QUuid::createUuid()) {} Device::DeviceError status = Device::DeviceErrorNoError; BrowserItems items; QUuid id() const { return m_id; } private: QUuid m_id; - BrowseResult(): m_id(QUuid::createUuid()) {} - friend class DeviceManager; }; class BrowserItemResult { public: + BrowserItemResult(): m_id(QUuid::createUuid()) {} Device::DeviceError status = Device::DeviceErrorNoError; BrowserItem item; QUuid id() const { return m_id; } private: QUuid m_id; - BrowserItemResult(): m_id(QUuid::createUuid()) {} - friend class DeviceManager; }; DeviceId id() const; diff --git a/libnymea/devices/devicemanager.cpp b/libnymea/devices/devicemanager.cpp index 9ccb6dc3..a2bb77e4 100644 --- a/libnymea/devices/devicemanager.cpp +++ b/libnymea/devices/devicemanager.cpp @@ -39,13 +39,3 @@ DeviceManager::DeviceManager(QObject *parent) : QObject(parent) { } - -Device::BrowseResult DeviceManager::createBrowseResult() -{ - return Device::BrowseResult(); -} - -Device::BrowserItemResult DeviceManager::createBrowserItemResult() -{ - return Device::BrowserItemResult(); -} diff --git a/libnymea/devices/devicemanager.h b/libnymea/devices/devicemanager.h index 6892340d..893e03a6 100644 --- a/libnymea/devices/devicemanager.h +++ b/libnymea/devices/devicemanager.h @@ -100,11 +100,6 @@ signals: void browserItemExecutionFinished(const ActionId &actionId, Device::DeviceError status); void browserItemActionExecutionFinished(const ActionId &actionId, Device::DeviceError status); -protected: - // BrowseResult/BrowserItemResult have private Ctors to make sure a plugin dev can not mess up the request ids. - // DeviceManager is a friend, but the implementation is not, expose this to the DeviceManager implementation. - Device::BrowseResult createBrowseResult(); - Device::BrowserItemResult createBrowserItemResult(); }; #endif // DEVICEMANAGER_H