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.
This commit is contained in:
Michael Zanetti 2019-07-19 14:40:14 +02:00
parent b5b38f287f
commit 0b7176c6f4
4 changed files with 4 additions and 21 deletions

View File

@ -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 DeviceManagerImplementation::browseDevice(const DeviceId &deviceId, const QString &itemId, const QLocale &locale)
{ {
Device::BrowseResult result = createBrowseResult(); Device::BrowseResult result;
Device *device = m_configuredDevices.value(deviceId); Device *device = m_configuredDevices.value(deviceId);
if (!device) { 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 DeviceManagerImplementation::browserItemDetails(const DeviceId &deviceId, const QString &itemId, const QLocale &locale)
{ {
Device::BrowserItemResult result = createBrowserItemResult(); Device::BrowserItemResult result;
Device *device = m_configuredDevices.value(deviceId); Device *device = m_configuredDevices.value(deviceId);
if (!device) { if (!device) {

View File

@ -85,24 +85,22 @@ public:
class BrowseResult { class BrowseResult {
public: public:
BrowseResult(): m_id(QUuid::createUuid()) {}
Device::DeviceError status = Device::DeviceErrorNoError; Device::DeviceError status = Device::DeviceErrorNoError;
BrowserItems items; BrowserItems items;
QUuid id() const { return m_id; } QUuid id() const { return m_id; }
private: private:
QUuid m_id; QUuid m_id;
BrowseResult(): m_id(QUuid::createUuid()) {}
friend class DeviceManager;
}; };
class BrowserItemResult { class BrowserItemResult {
public: public:
BrowserItemResult(): m_id(QUuid::createUuid()) {}
Device::DeviceError status = Device::DeviceErrorNoError; Device::DeviceError status = Device::DeviceErrorNoError;
BrowserItem item; BrowserItem item;
QUuid id() const { return m_id; } QUuid id() const { return m_id; }
private: private:
QUuid m_id; QUuid m_id;
BrowserItemResult(): m_id(QUuid::createUuid()) {}
friend class DeviceManager;
}; };
DeviceId id() const; DeviceId id() const;

View File

@ -39,13 +39,3 @@ DeviceManager::DeviceManager(QObject *parent) : QObject(parent)
{ {
} }
Device::BrowseResult DeviceManager::createBrowseResult()
{
return Device::BrowseResult();
}
Device::BrowserItemResult DeviceManager::createBrowserItemResult()
{
return Device::BrowserItemResult();
}

View File

@ -100,11 +100,6 @@ signals:
void browserItemExecutionFinished(const ActionId &actionId, Device::DeviceError status); void browserItemExecutionFinished(const ActionId &actionId, Device::DeviceError status);
void browserItemActionExecutionFinished(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 #endif // DEVICEMANAGER_H