summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2023-04-21 17:28:43 +0300
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2023-04-21 14:59:34 +0000
commitc95ade272b88af4835446f085440066bd5e34ccf (patch)
tree0eaa706c114304df67699479ed7a3c2b202b5b70
parent7af8c225d11ac2dcfcebdecdc91f01b944c580c0 (diff)
downloadqt-creator-c95ade272b88af4835446f085440066bd5e34ccf.tar.gz
QmlDesigner: Abort lights baking if no response from quick3d side
Fixes: QDS-9666 Change-Id: I8721e1076bda7113dca9afde9998548e232a2186 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
-rw-r--r--src/plugins/qmldesigner/components/edit3d/bakelightsconnectionmanager.cpp2
-rw-r--r--src/tools/qml2puppet/qml2puppet/instances/qt5bakelightsnodeinstanceserver.cpp6
-rw-r--r--src/tools/qml2puppet/qml2puppet/instances/qt5bakelightsnodeinstanceserver.h1
3 files changed, 7 insertions, 2 deletions
diff --git a/src/plugins/qmldesigner/components/edit3d/bakelightsconnectionmanager.cpp b/src/plugins/qmldesigner/components/edit3d/bakelightsconnectionmanager.cpp
index 201ca1d2e9..d2a6f3d332 100644
--- a/src/plugins/qmldesigner/components/edit3d/bakelightsconnectionmanager.cpp
+++ b/src/plugins/qmldesigner/components/edit3d/bakelightsconnectionmanager.cpp
@@ -34,7 +34,7 @@ void BakeLightsConnectionManager::dispatchCommand(const QVariant &command,
m_progressCallback(cmd.data().toString());
break;
case PuppetToCreatorCommand::BakeLightsAborted:
- m_finishedCallback(tr("Baking aborted!"));
+ m_finishedCallback(tr("Baking aborted: %1").arg(cmd.data().toString()));
break;
case PuppetToCreatorCommand::BakeLightsFinished:
m_finishedCallback(tr("Baking finished!"));
diff --git a/src/tools/qml2puppet/qml2puppet/instances/qt5bakelightsnodeinstanceserver.cpp b/src/tools/qml2puppet/qml2puppet/instances/qt5bakelightsnodeinstanceserver.cpp
index 9a8fc9489a..d7a8b313ac 100644
--- a/src/tools/qml2puppet/qml2puppet/instances/qt5bakelightsnodeinstanceserver.cpp
+++ b/src/tools/qml2puppet/qml2puppet/instances/qt5bakelightsnodeinstanceserver.cpp
@@ -93,6 +93,7 @@ void Qt5BakeLightsNodeInstanceServer::bakeLights()
QQuick3DLightmapBaker::Callback callback = [this](QQuick3DLightmapBaker::BakingStatus status,
std::optional<QString> msg, QQuick3DLightmapBaker::BakingControl *) {
+ m_callbackReceived = true;
switch (status) {
case QQuick3DLightmapBaker::BakingStatus::Progress:
case QQuick3DLightmapBaker::BakingStatus::Warning:
@@ -224,8 +225,11 @@ void Qt5BakeLightsNodeInstanceServer::render()
} else {
rootNodeInstance().updateDirtyNodeRecursive();
renderWindow();
- if (m_bakingStarted)
+ if (m_bakingStarted) {
slowDownRenderTimer(); // No more renders needed
+ if (!m_callbackReceived)
+ abort(tr("No bakeable models detected."));
+ }
}
}
#endif
diff --git a/src/tools/qml2puppet/qml2puppet/instances/qt5bakelightsnodeinstanceserver.h b/src/tools/qml2puppet/qml2puppet/instances/qt5bakelightsnodeinstanceserver.h
index fc99adc902..0a92ccdf8f 100644
--- a/src/tools/qml2puppet/qml2puppet/instances/qt5bakelightsnodeinstanceserver.h
+++ b/src/tools/qml2puppet/qml2puppet/instances/qt5bakelightsnodeinstanceserver.h
@@ -45,6 +45,7 @@ private:
QQuick3DViewport *m_view3D = nullptr;
bool m_bakingStarted = false;
+ bool m_callbackReceived = false;
int m_renderCount = 0;
QProcess *m_denoiser = nullptr;
QTemporaryDir m_workingDir;