diff --git a/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp b/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp index a217e396d9c..16d5a60fde7 100644 --- a/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp +++ b/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -167,6 +168,11 @@ Edit3DWidget::Edit3DWidget(Edit3DView *view) createContextMenu(); + m_mcuLabel = new QLabel(this); + m_mcuLabel->setText(tr("MCU project does not support Qt Quick 3D.")); + m_mcuLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + fillLayout->addWidget(m_mcuLabel.data()); + // Onboarding label contains instructions for new users how to get 3D content into the project m_onboardingLabel = new QLabel(this); QString labelText = @@ -413,7 +419,24 @@ void Edit3DWidget::showCanvas(bool show) m_canvas->updateRenderImage(emptyImage); } m_canvas->setVisible(show); - m_onboardingLabel->setVisible(!show); + + if (show) { + m_onboardingLabel->setVisible(false); + m_mcuLabel->setVisible(false); + } else { + bool quick3dAllowed = true; + const DesignerMcuManager &mcuManager = DesignerMcuManager::instance(); + if (mcuManager.isMCUProject()) { + const QStringList mcuAllowedList = mcuManager.allowedImports(); + if (!mcuAllowedList.contains("QtQuick3d")) + quick3dAllowed = false; + } + + m_onboardingLabel->setVisible(quick3dAllowed); + m_mcuLabel->setVisible(!quick3dAllowed); + } + + } QMenu *Edit3DWidget::visibilityTogglesMenu() const diff --git a/src/plugins/qmldesigner/components/edit3d/edit3dwidget.h b/src/plugins/qmldesigner/components/edit3d/edit3dwidget.h index eecd52345fa..f764f068bf4 100644 --- a/src/plugins/qmldesigner/components/edit3d/edit3dwidget.h +++ b/src/plugins/qmldesigner/components/edit3d/edit3dwidget.h @@ -70,6 +70,7 @@ private: QPointer m_view; QPointer m_canvas; QPointer m_onboardingLabel; + QPointer m_mcuLabel; QPointer m_toolBox; Core::IContext *m_context = nullptr; QPointer m_visibilityTogglesMenu;