From 7dd59dd90fc1dc688019931c8d1bb0dcba6941e9 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Sat, 11 Apr 2020 12:31:26 +0200 Subject: [PATCH] Fix popping the page stack when things are deleted --- libnymea-app/devices.cpp | 4 +++- libnymea-app/devices.h | 2 ++ nymea-app/ui/devicepages/DevicePageBase.qml | 10 ++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/libnymea-app/devices.cpp b/libnymea-app/devices.cpp index b474f1eb..9eafcb1f 100644 --- a/libnymea-app/devices.cpp +++ b/libnymea-app/devices.cpp @@ -117,6 +117,7 @@ void Devices::addDevice(Device *device) emit dataChanged(index(idx), index(idx)); }); emit countChanged(); + emit thingAdded(device); } void Devices::removeDevice(Device *device) @@ -124,9 +125,10 @@ void Devices::removeDevice(Device *device) int index = m_devices.indexOf(device); beginRemoveRows(QModelIndex(), index, index); qDebug() << "Devices: removed device" << device->name(); - m_devices.removeAt(index); + m_devices.takeAt(index)->deleteLater(); endRemoveRows(); emit countChanged(); + emit thingRemoved(device); } void Devices::clearModel() diff --git a/libnymea-app/devices.h b/libnymea-app/devices.h index eb003234..578d15e3 100644 --- a/libnymea-app/devices.h +++ b/libnymea-app/devices.h @@ -73,6 +73,8 @@ protected: signals: void countChanged(); + void thingAdded(Device *device); + void thingRemoved(Device *device); private: QList m_devices; diff --git a/nymea-app/ui/devicepages/DevicePageBase.qml b/nymea-app/ui/devicepages/DevicePageBase.qml index 95b10c97..8d099d56 100644 --- a/nymea-app/ui/devicepages/DevicePageBase.qml +++ b/nymea-app/ui/devicepages/DevicePageBase.qml @@ -144,6 +144,16 @@ Page { } } + Connections { + target: engine.deviceManager.devices + onThingRemoved:{ + if (device == root.device) { + print("Device destroyed") + pageStack.pop() + } + } + } + Component { id: addToGroupDialog MeaDialog {