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);
|
ModelNodeOperations::editMaterial(selCtx);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
m_contextMenu->addSeparator();
|
||||||
|
|
||||||
|
m_copyAction = m_contextMenu->addAction(tr("Copy"), [&] {
|
||||||
|
QmlDesignerPlugin::instance()->currentDesignDocument()->copySelected();
|
||||||
|
});
|
||||||
|
|
||||||
m_deleteAction = m_contextMenu->addAction(tr("Delete"), [&] {
|
m_deleteAction = m_contextMenu->addAction(tr("Delete"), [&] {
|
||||||
view()->executeInTransaction("Edit3DWidget::createContextMenu", [&] {
|
view()->executeInTransaction("Edit3DWidget::createContextMenu", [&] {
|
||||||
for (ModelNode &node : m_view->selectedModelNodes())
|
for (ModelNode &node : m_view->selectedModelNodes())
|
||||||
node.destroy();
|
node.destroy();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
m_contextMenu->addSeparator();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Called by the view to update the "create" sub-menu when the Quick3D entries are ready.
|
// 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 isValid = modelNode.isValid();
|
||||||
const bool isModel = modelNode.metaInfo().isQtQuick3DModel();
|
const bool isModel = modelNode.metaInfo().isQtQuick3DModel();
|
||||||
|
const bool isValidNotRoot = isValid && !modelNode.isRootNode();
|
||||||
|
|
||||||
m_editMaterialAction->setEnabled(isModel);
|
m_editMaterialAction->setEnabled(isModel);
|
||||||
m_deleteAction->setEnabled(isValid && !modelNode.isRootNode());
|
m_deleteAction->setEnabled(isValidNotRoot);
|
||||||
|
m_copyAction->setEnabled(isValidNotRoot);
|
||||||
|
|
||||||
m_contextMenu->popup(mapToGlobal(pos));
|
m_contextMenu->popup(mapToGlobal(pos));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ private:
|
|||||||
QPointer<QMenu> m_contextMenu;
|
QPointer<QMenu> m_contextMenu;
|
||||||
QPointer<QAction> m_editMaterialAction;
|
QPointer<QAction> m_editMaterialAction;
|
||||||
QPointer<QAction> m_deleteAction;
|
QPointer<QAction> m_deleteAction;
|
||||||
|
QPointer<QAction> m_copyAction;
|
||||||
QPointer<QMenu> m_createSubMenu;
|
QPointer<QMenu> m_createSubMenu;
|
||||||
ModelNode m_contextMenuTarget;
|
ModelNode m_contextMenuTarget;
|
||||||
QVector3D m_contextMenuPos3d;
|
QVector3D m_contextMenuPos3d;
|
||||||
|
|||||||
Reference in New Issue
Block a user