From d306f9c1587829bd6c15678515437fb590f4a0fa Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Sun, 4 Jul 2021 13:39:46 +0200 Subject: [PATCH] Fix an occational crash in logsmodel --- libnymea-app/models/logsmodelng.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/libnymea-app/models/logsmodelng.cpp b/libnymea-app/models/logsmodelng.cpp index c62a653b..2f472916 100644 --- a/libnymea-app/models/logsmodelng.cpp +++ b/libnymea-app/models/logsmodelng.cpp @@ -53,10 +53,19 @@ Engine *LogsModelNg::engine() const void LogsModelNg::setEngine(Engine *engine) { - if (m_engine != engine) { - m_engine = engine; - connect(engine->logManager(), &LogManager::logEntryReceived, this, &LogsModelNg::newLogEntryReceived); - emit engineChanged(); + if (m_engine == engine) { + return; + } + + if (m_engine) { + disconnect(m_engine->logManager(), &LogManager::logEntryReceived, this, &LogsModelNg::newLogEntryReceived); + } + + m_engine = engine; + emit engineChanged(); + + if (m_engine) { + connect(m_engine->logManager(), &LogManager::logEntryReceived, this, &LogsModelNg::newLogEntryReceived); } }