diff --git a/src/backend.cpp b/src/backend.cpp index 639f3ea2a808d079f791381e5c32c6828407689f..c8dee26ab7440302ea5057b93529558eba37b309 100644 --- a/src/backend.cpp +++ b/src/backend.cpp @@ -288,9 +288,6 @@ void Backend::openCamera() void Backend::initializeProjectManager() { - if (m_projectManager) - return; - m_projectManager.reset(new ProjectManager(autoScaleProject())); connect(m_projectManager.data(), &ProjectManager::closingProject, this, [&] { emit popupClose(); @@ -307,6 +304,13 @@ void Backend::initDesignStudioConnector() this, &Backend::networkUpdated); + connect(m_designStudioConnector.data(), &DesignStudioConnector::projectIncoming, this, [&] { + qDebug() << "Project incoming from Design Studio"; + m_projectManager.reset(); + emit popupOpen(); + updatePopup("Receiving project..."); + }); + connect(m_designStudioConnector.data(), &DesignStudioConnector::projectReceived, this, @@ -336,6 +340,7 @@ void Backend::initDesignStudioConnector() } emit popupClose(); + m_designStudioConnector->sendProjectReceived(); }); qDebug() << "Design Studio Connector is initialized"; diff --git a/src/dsConnector.cpp b/src/dsConnector.cpp index b5cf944fa5975664728adf5cbf6a58cc03e8981a..f808d5d1bf964d3d15503054b743d1691353f825 100644 --- a/src/dsConnector.cpp +++ b/src/dsConnector.cpp @@ -42,6 +42,7 @@ void DesignStudioConnector::receiveProject() m_projectData.clear(); m_projectData.append(data); m_receivingData = true; + emit projectIncoming(); } else if (m_receivingData) { if (data.contains("::qmlrc-end::")) { qDebug() << "TCP:: Received project end delimeter"; @@ -111,3 +112,14 @@ void DesignStudioConnector::updateIpv4Addr() emit networkStatusUpdated("\nLocal IP: " + m_ipv4Addr + "\nWaiting for Design Studio to connect..."); } + +void DesignStudioConnector::sendProjectReceived() +{ + if (!m_tcpSocket) { + qDebug() << "TCP:: Socket is not connected"; + return; + } + + m_tcpSocket->write("::qmlrc-received::"); + m_tcpSocket->flush(); +} diff --git a/src/dsConnector.h b/src/dsConnector.h index d9fb0b67cd86cbbd472bfff3544fa5159265e06f..2a5c193b045310f8c51820b30ad0b44ad8984e9c 100644 --- a/src/dsConnector.h +++ b/src/dsConnector.h @@ -38,6 +38,8 @@ class DesignStudioConnector : public QObject public: explicit DesignStudioConnector(QObject *parent = nullptr); + void sendProjectReceived(); + private: // Tcp connection members QTcpServer m_tcpServer; @@ -60,6 +62,7 @@ private: signals: void networkStatusUpdated(QString); void projectReceived(QByteArray); + void projectIncoming(); }; #endif // DSCONNECTOR_H