forked from qt-creator/qt-creator
QmlDesigner: Add Copy to 3d Context Menu
Copy action is added to the context menu of the Edit3DWidget. Task-number: QDS-8063 Change-Id: I8d5c9eeadfeac827012b175fa12c05ef7f31c9f4 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
@@ -174,12 +174,21 @@ void Edit3DWidget::createContextMenu()
|
||||
ModelNodeOperations::editMaterial(selCtx);
|
||||
});
|
||||
|
||||
m_contextMenu->addSeparator();
|
||||
|
||||
m_copyAction = m_contextMenu->addAction(tr("Copy"), [&] {
|
||||
QmlDesignerPlugin::instance()->currentDesignDocument()->copySelected();
|
||||
});
|
||||
|
||||
m_deleteAction = m_contextMenu->addAction(tr("Delete"), [&] {
|
||||
view()->executeInTransaction("Edit3DWidget::createContextMenu", [&] {
|
||||
for (ModelNode &node : m_view->selectedModelNodes())
|
||||
node.destroy();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
m_contextMenu->addSeparator();
|
||||
}
|
||||
|
||||
// Called by the view to update the "create" sub-menu when the Quick3D entries are ready.
|
||||
@@ -303,8 +312,11 @@ void Edit3DWidget::showContextMenu(const QPoint &pos, const ModelNode &modelNode
|
||||
|
||||
const bool isValid = modelNode.isValid();
|
||||
const bool isModel = modelNode.metaInfo().isQtQuick3DModel();
|
||||
const bool isValidNotRoot = isValid && !modelNode.isRootNode();
|
||||
|
||||
m_editMaterialAction->setEnabled(isModel);
|
||||
m_deleteAction->setEnabled(isValid && !modelNode.isRootNode());
|
||||
m_deleteAction->setEnabled(isValidNotRoot);
|
||||
m_copyAction->setEnabled(isValidNotRoot);
|
||||
|
||||
m_contextMenu->popup(mapToGlobal(pos));
|
||||
}
|
||||
|
||||
@@ -62,6 +62,7 @@ private:
|
||||
QPointer<QMenu> m_contextMenu;
|
||||
QPointer<QAction> m_editMaterialAction;
|
||||
QPointer<QAction> m_deleteAction;
|
||||
QPointer<QAction> m_copyAction;
|
||||
QPointer<QMenu> m_createSubMenu;
|
||||
ModelNode m_contextMenuTarget;
|
||||
QVector3D m_contextMenuPos3d;
|
||||
|
||||
Reference in New Issue
Block a user