From 701fcc3624236f26ff858867e874e50440527d91 Mon Sep 17 00:00:00 2001 From: wandererfan Date: Sat, 6 Apr 2024 11:09:16 -0400 Subject: [PATCH] [TD]create BrokenView from base view --- src/Mod/TechDraw/Gui/Command.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Mod/TechDraw/Gui/Command.cpp b/src/Mod/TechDraw/Gui/Command.cpp index 397b5438e0..9ed2f98be9 100644 --- a/src/Mod/TechDraw/Gui/Command.cpp +++ b/src/Mod/TechDraw/Gui/Command.cpp @@ -453,16 +453,30 @@ void CmdTechDrawBrokenView::activated(int iMsg) } std::string PageName = page->getNameInDocument(); + // get shape objects from a base view + std::vector shapesFromBase; + std::vector xShapesFromBase; + std::vector baseViews = + getSelection().getObjectsOfType(TechDraw::DrawViewPart::getClassTypeId()); + if (!baseViews.empty()) { + TechDraw::DrawViewPart* dvp = static_cast(*baseViews.begin()); + shapesFromBase = dvp->Source.getValues(); + xShapesFromBase = dvp->XSource.getValues(); + } + // get the shape objects from the selection std::vector shapes; std::vector xShapes; App::DocumentObject* faceObj = nullptr; std::string faceName; getSelectedShapes(this, shapes, xShapes, faceObj, faceName); + shapes.insert(shapes.end(), shapesFromBase.begin(), shapesFromBase.end()); + shapes.insert(xShapes.end(), xShapesFromBase.begin(), xShapesFromBase.end()); + if (shapes.empty() && xShapes.empty()) { QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Empty selection"), - QObject::tr("Please select objects to break and break objects.")); + QObject::tr("Please select objects to break or a base view and break definition objects.")); return; }