[TD]allow finding child view outside clip rectangle

This commit is contained in:
wandererfan
2025-08-25 18:56:44 -04:00
committed by Chris Hennes
parent 8cfc3f2475
commit d288a5ee30
3 changed files with 28 additions and 1 deletions

View File

@@ -38,6 +38,7 @@
#include "QGCustomClip.h"
#include "QGCustomRect.h"
#include "Rez.h"
#include "ViewProviderViewClip.h"
using namespace TechDrawGui;
@@ -155,6 +156,13 @@ void QGIViewClip::drawClip()
}
}
}
auto* vpClip = freecad_cast<ViewProviderViewClip*>(getViewProvider(viewClip));
if (!vpClip) {
return;
}
m_cliparea->setFlag(QGraphicsItem::ItemClipsChildrenToShape, vpClip->ClipChildren.getValue());
}

View File

@@ -35,6 +35,7 @@
#include <Mod/TechDraw/App/DrawProjGroupItem.h>
#include "ViewProviderViewClip.h"
#include "QGIViewClip.h"
using namespace TechDrawGui;
@@ -44,6 +45,9 @@ ViewProviderViewClip::ViewProviderViewClip()
{
sPixmap = "actions/TechDraw_ClipGroup";
ADD_PROPERTY_TYPE(ClipChildren,(true), "Clip", App::Prop_None, "True clips children. False shows entire child views");
// Do not show in property editor why? wf WF: because DisplayMode applies only to coin and we
// don't use coin.
DisplayMode.setStatus(App::Property::Hidden, true);
@@ -146,4 +150,15 @@ void ViewProviderViewClip::dropObject(App::DocumentObject* docObj)
}
getObject()->addView(dv);
}
}
void ViewProviderViewClip::onChanged(const App::Property* prop)
{
if (prop == &ClipChildren) {
QGIView* qgiv = getQView();
if (qgiv) {
qgiv->updateView(true);
}
}
}

View File

@@ -43,11 +43,15 @@ public:
/// destructor
~ViewProviderViewClip() override;
App::PropertyBool ClipChildren;
bool useNewSelectionModel() const override {return false;}
TechDraw::DrawViewClip* getViewObject() const override;
TechDraw::DrawViewClip* getObject() const;
void onChanged(const App::Property *prop) override;
/// Hide the object in the view
void hide() override;
/// Show the object in the view