Skip to content
Snippets Groups Projects

QDS-14287 Support interruptable operations

Merged Burak Hançerli requested to merge QDS-14287/support-interruptable-operations into master
3 files
+ 38
20
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -31,8 +31,7 @@ DesignStudio::DesignStudio(QWebSocket *socket, const QString &deviceID, QObject
{
initPingPong();
initSocket();
m_pingTimer.start();
startPingPong();
}
void DesignStudio::initPingPong()
@@ -44,7 +43,7 @@ void DesignStudio::initPingPong()
connect(&m_pingTimer, &QTimer::timeout, this, [this]() {
m_socket->ping();
m_pongTimer.start();
startPingPong();
});
connect(m_socket.data(),
@@ -64,6 +63,17 @@ void DesignStudio::initPingPong()
});
}
void DesignStudio::stopPingPong()
{
m_pingTimer.stop();
m_pongTimer.stop();
}
void DesignStudio::startPingPong()
{
m_pingTimer.start();
}
void DesignStudio::initSocket()
{
connect(m_socket.data(), &QWebSocket::disconnected, this, [this]() {
@@ -162,6 +172,7 @@ void DesignStudio::processTextMessage(const QString &message)
qDebug() << "Project is expected with size" << m_incomingProjectSize << "and Qt version"
<< qtVersion;
m_projectData.clear();
stopPingPong();
emit projectIncoming(m_designStudioID, m_incomingProjectSize);
} else if (dataType == PackageFromDesignStudio::stopRunningProject) {
qDebug() << "Stop running project requested";
@@ -178,18 +189,21 @@ void DesignStudio::processBinaryMessage(const QByteArray &data)
const bool isProjectComplete = m_projectData.size() == m_incomingProjectSize;
int percentage = m_projectData.size() * 100 / m_incomingProjectSize;
qDebug() << "data size:" << data.size() << "current size:" << m_projectData.size()
<< "total size:" << m_incomingProjectSize << "percentage:" << percentage
<< "isProjectComplete:" << isProjectComplete;
if (m_lastPercentage != percentage) {
qDebug() << "data size:" << data.size() << "current size:" << m_projectData.size()
<< "total size:" << m_incomingProjectSize << "percentage:" << percentage
<< "isProjectComplete:" << isProjectComplete;
emit projectIncomingProgress(m_designStudioID, percentage);
m_lastPercentage = percentage;
sendData(PackageToDesignStudio::projectReceivingProgress, percentage);
}
if (isProjectComplete)
if (isProjectComplete) {
startPingPong();
sendProjectStarting();
emit projectReceived(m_designStudioID, m_projectData);
}
}
void DesignStudio::sendProjectStarting()
Loading