diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-08-11 11:54:46 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2016-08-23 06:29:01 +0000 |
commit | b9c90bb81a9474ec05565be866c403f2a3a26f2f (patch) | |
tree | 8bc8ee932f547fb1d7cd0a8b6e5b898cd1cd6180 /src/render/io | |
parent | 0f2dbaf025513ce906fc08b5153dea15142ff35a (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.cpp | 9 | ||||
-rw-r--r-- | src/render/io/qsceneloader_p.h | 3 |
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(); |