diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-08-11 11:11:43 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2016-08-23 06:28:58 +0000 |
commit | 0f2dbaf025513ce906fc08b5153dea15142ff35a (patch) | |
tree | 54b1817cc7550afaac39479c2540fda5702c727a /src/render | |
parent | e8bdcd57657e427bdc9a7bfef58033015b0b299f (diff) |
Scene: add a setStatus method
Will allow to set the status in the backend and update the frontend with it.
Change-Id: Iac47e9960b8ef56c4e45ea31c616c4bc2a8f3444
Task-number: QTBUG-54889
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render')
-rw-r--r-- | src/render/io/scene.cpp | 10 | ||||
-rw-r--r-- | src/render/io/scene_p.h | 2 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/render/io/scene.cpp b/src/render/io/scene.cpp index bfb5e4571..cf1ca4736 100644 --- a/src/render/io/scene.cpp +++ b/src/render/io/scene.cpp @@ -65,6 +65,16 @@ void Scene::cleanup() m_source.clear(); } +void Scene::setStatus(QSceneLoader::Status status) +{ + // Send the new subtree to the frontend or notify failure + auto e = Qt3DCore::QPropertyUpdatedChangePtr::create(peerId()); + e->setDeliveryFlags(Qt3DCore::QSceneChange::DeliverToAll); + e->setPropertyName("status"); + e->setValue(QVariant::fromValue(status)); + notifyObservers(e); +} + void Scene::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QSceneLoaderData>>(change); diff --git a/src/render/io/scene_p.h b/src/render/io/scene_p.h index fc3494489..42e3121c9 100644 --- a/src/render/io/scene_p.h +++ b/src/render/io/scene_p.h @@ -52,6 +52,7 @@ // #include <Qt3DRender/private/backendnode_p.h> +#include <Qt3DRender/qsceneloader.h> #include <QtGlobal> #include <QUrl> @@ -77,6 +78,7 @@ public: void setSceneManager(SceneManager *manager); void cleanup(); + void setStatus(QSceneLoader::Status status); private: void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) Q_DECL_FINAL; |