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); } }