From f64408de2efd7c7aac07d17dabe831fbbf007fbc Mon Sep 17 00:00:00 2001 From: wandererfan Date: Mon, 15 Dec 2025 19:15:20 -0500 Subject: [PATCH] [TD]prevent frames on exported/printed page --- src/Mod/TechDraw/Gui/QGIView.cpp | 21 +++++++++++++++++++++ src/Mod/TechDraw/Gui/QGIView.h | 3 +++ src/Mod/TechDraw/Gui/QGIViewPart.cpp | 15 --------------- src/Mod/TechDraw/Gui/QGIViewPart.h | 1 - 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/Mod/TechDraw/Gui/QGIView.cpp b/src/Mod/TechDraw/Gui/QGIView.cpp index e47fbf8d2f..7fa224baac 100644 --- a/src/Mod/TechDraw/Gui/QGIView.cpp +++ b/src/Mod/TechDraw/Gui/QGIView.cpp @@ -1086,6 +1086,10 @@ void QGIView::updateFrameVisibility() bool QGIView::shouldShowFrame() const { + if (isExporting()) { + return false; + } + if (isSelected()) { return true; } @@ -1119,6 +1123,23 @@ bool QGIView::shouldShowFromViewProvider() const return vpPage->getFrameState(); } + +bool QGIView::isExporting() const +{ + auto* view{freecad_cast(getViewObject())}; + auto vpPage = getViewProviderPage(view); + if (!view || !vpPage) { + return false; + } + + QGSPage* scenePage = vpPage->getQGSPage(); + if (!scenePage) { + return false; + } + + return scenePage->getExportingAny(); +} + //! Retrieves objects of type T with given indexes template std::vector QGIView::getObjects(std::vector indexes) diff --git a/src/Mod/TechDraw/Gui/QGIView.h b/src/Mod/TechDraw/Gui/QGIView.h index 931c8a15f8..85b750774f 100644 --- a/src/Mod/TechDraw/Gui/QGIView.h +++ b/src/Mod/TechDraw/Gui/QGIView.h @@ -185,6 +185,9 @@ public: static bool hasSelectedChildren(QGIView* parent); + bool isExporting() const; + + protected: QGIView* getQGIVByName(std::string name) const; diff --git a/src/Mod/TechDraw/Gui/QGIViewPart.cpp b/src/Mod/TechDraw/Gui/QGIViewPart.cpp index 386dec846a..4fbf327567 100644 --- a/src/Mod/TechDraw/Gui/QGIViewPart.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewPart.cpp @@ -1339,21 +1339,6 @@ void QGIViewPart::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) } -bool QGIViewPart::isExporting() const -{ - // dvp already validated - auto viewPart {freecad_cast(getViewObject())}; - auto vpPage = getViewProviderPage(viewPart); - - QGSPage* scenePage = vpPage->getQGSPage(); - if (!scenePage) { - return false; - } - - return scenePage->getExportingAny(); -} - - // returns true if vertex dots should be shown // note this is only one of the "rules" around showing or hiding vertices. bool QGIViewPart::showVertices() const diff --git a/src/Mod/TechDraw/Gui/QGIViewPart.h b/src/Mod/TechDraw/Gui/QGIViewPart.h index dcf1201eb6..234f6edeb5 100644 --- a/src/Mod/TechDraw/Gui/QGIViewPart.h +++ b/src/Mod/TechDraw/Gui/QGIViewPart.h @@ -126,7 +126,6 @@ public: virtual double getLineWidth(); virtual double getVertexSize(); - bool isExporting() const; bool hideCenterMarks() const;