From 633b6c41dd694bc8a5b9e4633ed0dce806f63a53 Mon Sep 17 00:00:00 2001
From: Burak Hancerli <burak.hancerli@qt.io>
Date: Mon, 3 Feb 2025 09:21:29 +0100
Subject: [PATCH] fix: speed tracker still runs and popup is left open after
 the disconnection

---
 src/backend/backend.cpp        | 1 +
 src/backend/dsconnector/ds.cpp | 5 +++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/backend/backend.cpp b/src/backend/backend.cpp
index cfebb45..78f62a7 100644
--- a/src/backend/backend.cpp
+++ b/src/backend/backend.cpp
@@ -83,6 +83,7 @@ Backend::Backend(QObject *parent)
                     if (m_projectManager && !m_projectManager->sessionId().isEmpty())
                         QMetaObject::invokeMethod(m_projectManager.get(), "stopProject");
                     m_dsManager->disconnectAllDesignStudios();
+                    popupClose();
                 }
             });
 
diff --git a/src/backend/dsconnector/ds.cpp b/src/backend/dsconnector/ds.cpp
index d8ad95b..ba39bd5 100644
--- a/src/backend/dsconnector/ds.cpp
+++ b/src/backend/dsconnector/ds.cpp
@@ -38,7 +38,6 @@ DesignStudio::DesignStudio(QWebSocket *socket, const QString &deviceID, QObject
         qDebug() << "Project is stalled. Closing the connection.";
         m_socket->close();
         m_socket->abort();
-        emit disconnected(m_designStudioID);
     });
 
     m_speedCalculator.setInterval(1000);
@@ -82,7 +81,6 @@ void DesignStudio::initPingPong()
                  << "is not responding. Closing the connection.";
         m_socket->close();
         m_socket->abort();
-        emit disconnected(m_designStudioID);
     });
 }
 
@@ -103,6 +101,9 @@ void DesignStudio::initSocket()
         qDebug() << "Design Studio" << m_designStudioID << "disconnected";
         m_pingTimer.stop();
         m_pongTimer.stop();
+        m_projectStallTimer.stop();
+        m_speedCalculator.stop();
+        m_projectData.clear();
         emit disconnected(m_designStudioID);
     });
 
-- 
GitLab