diff --git a/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp b/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp index b5e6e245e5e..02271518be9 100644 --- a/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp +++ b/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp @@ -2,37 +2,41 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "edit3dwidget.h" -#include "designdocument.h" -#include "designericons.h" + #include "edit3dactions.h" #include "edit3dcanvas.h" #include "edit3dtoolbarmenu.h" #include "edit3dview.h" -#include "externaldependenciesinterface.h" -#include "materialutils.h" -#include "metainfo.h" -#include "modelnodeoperations.h" -#include "nodeabstractproperty.h" -#include "nodehints.h" -#include "qmldesignerconstants.h" -#include "qmldesignerplugin.h" -#include "qmleditormenu.h" -#include "qmlvisualnode.h" -#include "viewmanager.h" -#include #include #include +#include +#include #include +#include +#include #include -#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include #include +#include +#include +#include #include #include #include -#include + +#include + #include #include #include @@ -616,6 +620,8 @@ void Edit3DWidget::showBackgroundColorMenu(bool show, const QPoint &pos) void Edit3DWidget::showContextMenu(const QPoint &pos, const ModelNode &modelNode, const QVector3D &pos3d) { + auto compUtils = QmlDesignerPlugin::instance()->documentManager().generatedComponentUtils(); + m_contextMenuTarget = modelNode; m_contextMenuPos3d = pos3d; @@ -625,6 +631,7 @@ void Edit3DWidget::showContextMenu(const QPoint &pos, const ModelNode &modelNode const bool isSingleComponent = view()->hasSingleSelectedModelNode() && modelNode.isComponent(); const bool anyNodeSelected = view()->hasSelectedModelNodes(); const bool selectionExcludingRoot = anyNodeSelected && !view()->rootModelNode().isSelected(); + const bool isInBundle = modelNode.type().startsWith(compUtils.componentBundlesTypePrefix().toLatin1()); if (m_createSubMenu) m_createSubMenu->setEnabled(!isSceneLocked()); @@ -642,7 +649,7 @@ void Edit3DWidget::showContextMenu(const QPoint &pos, const ModelNode &modelNode m_toggleGroupAction->setEnabled(true); m_bakeLightsAction->setVisible(view()->bakeLightsAction()->action()->isVisible()); m_bakeLightsAction->setEnabled(view()->bakeLightsAction()->action()->isEnabled()); - m_addToContentLibAction->setEnabled(isNode); + m_addToContentLibAction->setEnabled(isNode && !isInBundle); if (m_view) { int idx = m_view->activeSplit();