From d4b2400a1c3def9c1287b49b60bb3d0ed7dc4152 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Wed, 16 Feb 2022 14:48:19 +0100 Subject: [PATCH] Fix a potential crash when disconnecting older setups --- libnymea-app/energy/energylogs.cpp | 15 ++++++++------- libnymea-app/energy/energylogs.h | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/libnymea-app/energy/energylogs.cpp b/libnymea-app/energy/energylogs.cpp index 1ee40248..6b2f1480 100644 --- a/libnymea-app/energy/energylogs.cpp +++ b/libnymea-app/energy/energylogs.cpp @@ -48,16 +48,17 @@ void EnergyLogs::setEngine(Engine *engine) if (!m_engine) { return; } + + connect(engine, &Engine::destroyed, this, [=](){ + if (engine == m_engine) { + m_engine = nullptr; + emit engineChanged(); + } + }); + if (m_engine->jsonRpcClient()->experiences().value("Energy").toString() >= "1.0") { m_engine->jsonRpcClient()->registerNotificationHandler(this, "Energy", "notificationReceivedInternal"); - connect(engine, &Engine::destroyed, this, [=](){ - if (engine == m_engine) { - m_engine = nullptr; - emit engineChanged(); - } - }); - if (m_ready && !m_loadingInhibited) { fetchLogs(); } diff --git a/libnymea-app/energy/energylogs.h b/libnymea-app/energy/energylogs.h index c2600b28..2662668e 100644 --- a/libnymea-app/energy/energylogs.h +++ b/libnymea-app/energy/energylogs.h @@ -49,7 +49,7 @@ public: Q_ENUM(SampleRate) explicit EnergyLogs(QObject *parent = nullptr); - ~EnergyLogs(); + virtual ~EnergyLogs(); Engine *engine() const; void setEngine(Engine *engine);