From a121327801d3b9b55940131a6a059a3033536bf2 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Tue, 23 Mar 2021 15:45:53 +0100 Subject: [PATCH] Add signals for thing added and removed --- libnymea-app/thingmanager.cpp | 7 +++++-- libnymea-app/thingmanager.h | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libnymea-app/thingmanager.cpp b/libnymea-app/thingmanager.cpp index b73942a3..214bc2f7 100644 --- a/libnymea-app/thingmanager.cpp +++ b/libnymea-app/thingmanager.cpp @@ -143,11 +143,13 @@ void ThingManager::notificationReceived(const QVariantMap &data) } ThingClass *thingClass = thingClasses()->getThingClass(thing->thingClassId()); if (!thingClass) { - qWarning() << "Skipping invalid thing. Don't have a thing class for it"; + qCWarning(dcThingManager()) << "Skipping invalid thing. Don't have a thing class for it"; delete thing; return; } + qCInfo(dcThingManager()) << "A new thing has been added" << thing->name() << thing->id().toString(); m_things->addThing(thing); + emit thingAdded(thing); } else if (notification == "Integrations.ThingRemoved") { QUuid thingId = data.value("params").toMap().value("thingId").toUuid(); // qDebug() << "JsonRpc: Notification: Thing removed" << thingId.toString(); @@ -157,6 +159,7 @@ void ThingManager::notificationReceived(const QVariantMap &data) return; } m_things->removeThing(thing); + emit thingRemoved(thing); thing->deleteLater(); } else if (notification == "Integrations.ThingChanged") { QUuid thingId = data.value("params").toMap().value("thing").toMap().value("id").toUuid(); @@ -349,7 +352,7 @@ void ThingManager::addThingResponse(int commandId, const QVariantMap ¶ms) return; } - qDebug() << "Thing added" << thing->id().toString(); + qCInfo(dcThingManager()) << "Thing successfully added" << thing->name() << thing->id().toString(); m_things->addThing(thing); } } diff --git a/libnymea-app/thingmanager.h b/libnymea-app/thingmanager.h index 7f2587a5..5a2e679a 100644 --- a/libnymea-app/thingmanager.h +++ b/libnymea-app/thingmanager.h @@ -151,6 +151,9 @@ signals: void eventTriggered(const QUuid &thingId, const QUuid &eventTypeId, const QVariantMap params); void thingStateChanged(const QUuid &thingId, const QUuid &stateTypeId, const QVariant &value); + void thingAdded(Thing *thing); + void thingRemoved(Thing *thing); + private: static Vendor *unpackVendor(const QVariantMap &vendorMap); static Plugin *unpackPlugin(const QVariantMap &pluginMap, QObject *parent);