From 7c2f35c73f53ed399867a2e643c2f55a13d9a459 Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Mon, 25 Aug 2025 23:51:47 +0200 Subject: [PATCH] Gui: Show placement and plane in attacher --- src/Mod/Part/Gui/TaskAttacher.cpp | 14 ++++++++++++++ src/Mod/Part/Gui/TaskAttacher.h | 9 ++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/Mod/Part/Gui/TaskAttacher.cpp b/src/Mod/Part/Gui/TaskAttacher.cpp index 7697216063..6dbcd53947 100644 --- a/src/Mod/Part/Gui/TaskAttacher.cpp +++ b/src/Mod/Part/Gui/TaskAttacher.cpp @@ -51,6 +51,8 @@ #include #include "TaskAttacher.h" + +#include "ViewProvider2DObject.h" #include "ui_TaskAttacher.h" @@ -222,6 +224,7 @@ TaskAttacher::TaskAttacher(Gui::ViewProviderDocumentObject* ViewProvider, QWidge updateListOfModes(); selectMapMode(eMapMode(pcAttach->MapMode.getValue())); updatePreview(); + showPlacementUtilities(); //NOLINTBEGIN // connect object deletion with slot @@ -1051,6 +1054,17 @@ void TaskAttacher::selectMapMode(eMapMode mmode) { ui->listOfModes->blockSignals(false); } +void TaskAttacher::showPlacementUtilities() +{ + if (auto planarViewProvider = freecad_cast(ViewProvider)) { + overrides.override(planarViewProvider->ShowPlane, true); + } + + if (auto partViewProvider = freecad_cast(ViewProvider)) { + overrides.override(partViewProvider->ShowPlacement, true); + } +} + Attacher::eMapMode TaskAttacher::getActiveMapMode() { auto sel = ui->listOfModes->selectedItems(); diff --git a/src/Mod/Part/Gui/TaskAttacher.h b/src/Mod/Part/Gui/TaskAttacher.h index 46cc731f2c..92d9c909dc 100644 --- a/src/Mod/Part/Gui/TaskAttacher.h +++ b/src/Mod/Part/Gui/TaskAttacher.h @@ -30,8 +30,9 @@ #include #include #include -#include +#include +#include class Ui_TaskAttacher; class QLineEdit; @@ -48,6 +49,7 @@ namespace PartGui { class Ui_TaskAttacher; + class PartGuiExport TaskAttacher : public Gui::TaskView::TaskBox, public Gui::SelectionObserver { Q_OBJECT @@ -94,6 +96,7 @@ private Q_SLOTS: protected: void changeEvent(QEvent *e) override; + private: void objectDeleted(const Gui::ViewProviderDocumentObject&); void documentDeleted(const Gui::Document&); @@ -133,6 +136,8 @@ private: */ void selectMapMode(Attacher::eMapMode mmode); + void showPlacementUtilities(); + protected: Gui::ViewProviderDocumentObject *ViewProvider; std::string ObjectName; @@ -152,6 +157,8 @@ private: using Connection = boost::signals2::connection; Connection connectDelObject; Connection connectDelDocument; + + App::PropertyOverrideContext overrides; }; /// simulation dialog for the TaskView