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:
Ali Kianian
2022-10-28 18:13:05 +03:00
parent c55ac53f3c
commit af9ec8d20a
2 changed files with 14 additions and 1 deletions

View File

@@ -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));
}