diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp b/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp index ef6aa9f610e..c43bd485334 100644 --- a/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp +++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp @@ -82,6 +82,8 @@ void AssetsLibraryView::modelAttached(Model *model) m_widget->setModel(model); setResourcePath(DocumentManager::currentResourcePath().toFileInfo().absoluteFilePath()); + + m_sceneId = model->active3DSceneId(); } void AssetsLibraryView::modelAboutToBeDetached(Model *model) diff --git a/src/plugins/qmldesigner/components/contentlibrary/contentlibraryview.cpp b/src/plugins/qmldesigner/components/contentlibrary/contentlibraryview.cpp index 856d4077e12..764bb7f155a 100644 --- a/src/plugins/qmldesigner/components/contentlibrary/contentlibraryview.cpp +++ b/src/plugins/qmldesigner/components/contentlibrary/contentlibraryview.cpp @@ -130,6 +130,8 @@ void ContentLibraryView::modelAttached(Model *model) const bool hasLibrary = materialLibraryNode().isValid(); m_widget->setHasMaterialLibrary(hasLibrary); m_widget->setHasQuick3DImport(m_hasQuick3DImport); + + m_sceneId = model->active3DSceneId(); } void ContentLibraryView::modelAboutToBeDetached(Model *model) diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp index be3a45ad2ab..534ee4c4922 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp @@ -229,6 +229,8 @@ void MaterialBrowserView::modelAttached(Model *model) refreshModel(true); loadPropertyGroups(); // Needs the delay because it uses metaInfo }); + + m_sceneId = model->active3DSceneId(); } void MaterialBrowserView::refreshModel(bool updateImages) diff --git a/src/plugins/qmldesigner/designercore/include/model.h b/src/plugins/qmldesigner/designercore/include/model.h index e22dbe70b6e..336a5b2d280 100644 --- a/src/plugins/qmldesigner/designercore/include/model.h +++ b/src/plugins/qmldesigner/designercore/include/model.h @@ -149,6 +149,7 @@ public: QString generateIdFromName(const QString &name, const QString &fallbackId = "element") const; void setActive3DSceneId(qint32 sceneId); + qint32 active3DSceneId() const; void startDrag(QMimeData *mimeData, const QPixmap &icon); void endDrag(); diff --git a/src/plugins/qmldesigner/designercore/model/model.cpp b/src/plugins/qmldesigner/designercore/model/model.cpp index f3d8f403d61..0909afabac1 100644 --- a/src/plugins/qmldesigner/designercore/model/model.cpp +++ b/src/plugins/qmldesigner/designercore/model/model.cpp @@ -1596,6 +1596,14 @@ void Model::setActive3DSceneId(qint32 sceneId) d->notifyActive3DSceneIdChanged(sceneId); } +qint32 Model::active3DSceneId() const +{ + auto sceneId = d->rootNode()->auxiliaryData(active3dSceneProperty); + if (sceneId) + return sceneId->toInt(); + return -1; +} + void Model::startDrag(QMimeData *mimeData, const QPixmap &icon) { d->notifyDragStarted(mimeData);