QmlDesigner: Prevent adding bundle items back to content lib

Change-Id: I65e2eb936fa741599ffd087f903e33a71d01de99
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
Mahmoud Badri
2024-05-24 12:41:58 +03:00
parent 411d74cbce
commit c881408e5c

View File

@@ -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 <utils3d.h>
#include <auxiliarydataproperties.h>
#include <designeractionmanager.h>
#include <designdocument.h>
#include <designericons.h>
#include <designermcumanager.h>
#include <externaldependenciesinterface.h>
#include <generatedcomponentutils.h>
#include <import.h>
#include <model/modelutils.h>
#include <materialutils.h>
#include <metainfo.h>
#include <modelnodeoperations.h>
#include <nodeabstractproperty.h>
#include <nodehints.h>
#include <nodeinstanceview.h>
#include <qmldesignerconstants.h>
#include <qmldesignerplugin.h>
#include <qmleditormenu.h>
#include <qmlvisualnode.h>
#include <seekerslider.h>
#include <toolbox.h>
#include <viewmanager.h>
#include <utils3d.h>
#include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/actionmanager/command.h>
#include <coreplugin/icore.h>
#include <toolbox.h>
#include <model/modelutils.h>
#include <utils/asset.h>
#include <utils/qtcassert.h>
#include <utils/utilsicons.h>
@@ -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();