summaryrefslogtreecommitdiffstats
path: root/src/render/io
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-08-11 11:54:46 +0200
committerPaul Lemire <paul.lemire@kdab.com>2016-08-23 06:29:01 +0000
commitb9c90bb81a9474ec05565be866c403f2a3a26f2f (patch)
tree8bc8ee932f547fb1d7cd0a8b6e5b898cd1cd6180 /src/render/io
parent0f2dbaf025513ce906fc08b5153dea15142ff35a (diff)
QSceneLoader: status is updated from the backend
Change-Id: I52159b0fa78ab915e73c2dc84bda9bccc3dbd0ef Task-number: QTBUG-54889 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/io')
-rw-r--r--src/render/io/qsceneloader.cpp9
-rw-r--r--src/render/io/qsceneloader_p.h3
2 files changed, 7 insertions, 5 deletions
diff --git a/src/render/io/qsceneloader.cpp b/src/render/io/qsceneloader.cpp
index 2d0c3311c..69bd8528b 100644
--- a/src/render/io/qsceneloader.cpp
+++ b/src/render/io/qsceneloader.cpp
@@ -53,7 +53,7 @@ namespace Qt3DRender {
QSceneLoaderPrivate::QSceneLoaderPrivate()
: QComponentPrivate()
- , m_status(QSceneLoader::Loading)
+ , m_status(QSceneLoader::None)
, m_subTreeRoot(nullptr)
{
m_shareable = false;
@@ -178,9 +178,8 @@ void QSceneLoader::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change)
subTreeRoot->setParent(parentEntity);
d->m_subTreeRoot = subTreeRoot;
}
-
- // Update status property
- setStatus(subTreeRoot ? QSceneLoader::Ready : QSceneLoader::Error);
+ } else if (e->propertyName() == QByteArrayLiteral("status")) {
+ setStatus(e->value().value<QSceneLoader::Status>());
}
}
}
@@ -230,7 +229,9 @@ void QSceneLoader::setStatus(QSceneLoader::Status status)
Q_D(QSceneLoader);
if (d->m_status != status) {
d->m_status = status;
+ const bool wasBlocked = blockNotifications(true);
emit statusChanged(status);
+ blockNotifications(wasBlocked);
}
}
diff --git a/src/render/io/qsceneloader_p.h b/src/render/io/qsceneloader_p.h
index 740e9dce8..b002957b2 100644
--- a/src/render/io/qsceneloader_p.h
+++ b/src/render/io/qsceneloader_p.h
@@ -53,6 +53,7 @@
#include <private/qcomponent_p.h>
#include <Qt3DRender/qsceneloader.h>
+#include <Qt3DRender/private/qt3drender_global_p.h>
QT_BEGIN_NAMESPACE
@@ -60,7 +61,7 @@ namespace Qt3DRender {
class QSceneIOHandler;
-class QSceneLoaderPrivate : public Qt3DCore::QComponentPrivate
+class QT3DRENDERSHARED_PRIVATE_EXPORT QSceneLoaderPrivate : public Qt3DCore::QComponentPrivate
{
public:
QSceneLoaderPrivate();