diff --git a/src/Mod/Mesh/Gui/Command.cpp b/src/Mod/Mesh/Gui/Command.cpp index 9e2f54dc45..45556ddad8 100644 --- a/src/Mod/Mesh/Gui/Command.cpp +++ b/src/Mod/Mesh/Gui/Command.cpp @@ -1643,7 +1643,7 @@ CmdMeshMerge::CmdMeshMerge() sAppModule = "Mesh"; sGroup = QT_TR_NOOP("Mesh"); sMenuText = QT_TR_NOOP("Merge"); - sToolTipText = "Merges selected meshes into one"; + sToolTipText = QT_TR_NOOP("Merges selected meshes into one"); sWhatsThis = "Mesh_Merge"; sStatusTip = sToolTipText; } @@ -1653,16 +1653,17 @@ void CmdMeshMerge::activated(int iMsg) App::Document *pcDoc = App::GetApplication().getActiveDocument(); if (!pcDoc) return; + openCommand("Mesh merge"); - Mesh::MeshObject* newMesh = new(Mesh::MeshObject); + Mesh::Feature *pcFeature = static_cast(pcDoc->addObject("Mesh::Feature", "Mesh")); + Mesh::MeshObject* newMesh = pcFeature->Mesh.startEditing(); std::vector objs = Gui::Selection().getObjectsOfType(Mesh::Feature::getClassTypeId()); for (std::vector::const_iterator it = objs.begin(); it != objs.end(); ++it) { const MeshObject& mesh = static_cast(*it)->Mesh.getValue(); - MeshCore::MeshKernel kernel = mesh.getKernel(); - newMesh->addMesh(kernel); + newMesh->addMesh(mesh); } - Mesh::Feature *pcFeature = (Mesh::Feature*)pcDoc->addObject("Mesh::Feature", "Mesh"); - pcFeature->Mesh.setValue(*newMesh); + + pcFeature->Mesh.finishEditing(); updateActive(); commitCommand(); }