TechDraw: Use freecad_cast whenever possible

This commit is contained in:
Kacper Donat
2025-04-25 00:05:45 +02:00
committed by Benjamin Nauck
parent 81c772938e
commit d9d518f905
45 changed files with 94 additions and 94 deletions

View File

@@ -63,7 +63,7 @@ public:
bool operator== (const ReferenceEntry& otherRef) const;
App::DocumentObject* getObject() const;
template <class T> T* getObject() const { return dynamic_cast<T*>(getObject()); }
template <class T> T* getObject() const { return freecad_cast<T*>(getObject()); }
void setObject(App::DocumentObject* docObj) { m_object = docObj; }
std::string getSubName(bool longForm = false) const;
void setSubName(const std::string& subName) { m_subName = subName; }

View File

@@ -744,7 +744,7 @@ BaseGeomPtrVector DrawComplexSection::makeSectionLineGeometry()
{
// Base::Console().Message("DCS::makeSectionLineGeometry()\n");
BaseGeomPtrVector result;
DrawViewPart* baseDvp = dynamic_cast<DrawViewPart*>(BaseView.getValue());
DrawViewPart* baseDvp = freecad_cast<DrawViewPart*>(BaseView.getValue());
if (baseDvp) {
TopoDS_Wire lineWire = makeSectionLineWire();
TopoDS_Shape projectedWire =
@@ -775,7 +775,7 @@ std::pair<Base::Vector3d, Base::Vector3d> DrawComplexSection::sectionLineEnds()
Base::Vector3d first = Base::Vector3d(gpFirst.X(), gpFirst.Y(), gpFirst.Z());
Base::Vector3d last = Base::Vector3d(gpLast.X(), gpLast.Y(), gpLast.Z());
DrawViewPart* baseDvp = dynamic_cast<DrawViewPart*>(BaseView.getValue());
DrawViewPart* baseDvp = freecad_cast<DrawViewPart*>(BaseView.getValue());
if (baseDvp) {
first = baseDvp->projectPoint(first);
last = baseDvp->projectPoint(last);
@@ -831,7 +831,7 @@ std::pair<Base::Vector3d, Base::Vector3d> DrawComplexSection::sectionArrowDirs()
Base::Vector3d vDir1 = Base::convertTo<Base::Vector3d>(gDir1);
vDir0.Normalize();
vDir1.Normalize();
DrawViewPart* baseDvp = dynamic_cast<DrawViewPart*>(BaseView.getValue());
DrawViewPart* baseDvp = freecad_cast<DrawViewPart*>(BaseView.getValue());
if (baseDvp) {
vDir0 = baseDvp->projectPoint(vDir0, true);
vDir1 = baseDvp->projectPoint(vDir1, true);
@@ -847,7 +847,7 @@ TopoDS_Wire DrawComplexSection::makeSectionLineWire()
{
TopoDS_Wire lineWire;
App::DocumentObject* toolObj = CuttingToolWireObject.getValue();
DrawViewPart* baseDvp = dynamic_cast<DrawViewPart*>(BaseView.getValue());
DrawViewPart* baseDvp = freecad_cast<DrawViewPart*>(BaseView.getValue());
if (baseDvp) {
TopoDS_Shape toolShape = Part::Feature::getShape(toolObj);
if (toolShape.IsNull()) {
@@ -884,7 +884,7 @@ ChangePointVector DrawComplexSection::getChangePointsFromSectionLine()
// Base::Console().Message("DCS::getChangePointsFromSectionLine()\n");
ChangePointVector result;
std::vector<gp_Pnt> allPoints;
DrawViewPart* baseDvp = dynamic_cast<DrawViewPart*>(BaseView.getValue());
DrawViewPart* baseDvp = freecad_cast<DrawViewPart*>(BaseView.getValue());
if (baseDvp) {
TopoDS_Wire lineWire = makeSectionLineWire();
TopoDS_Shape projectedWire =

View File

@@ -112,7 +112,7 @@ DrawViewDimension* DrawDimHelper::makeExtentDim(DrawViewPart* dvp, std::vector<s
Base::Interpreter().runStringArg(
"App.activeDocument().%s.DirExtent = %d", dimName.c_str(), dimNum);
auto* dimExt = dynamic_cast<DrawViewDimExtent*>(doc->getObject(dimName.c_str()));
auto* dimExt = freecad_cast<DrawViewDimExtent*>(doc->getObject(dimName.c_str()));
if (!dimExt) {
throw Base::TypeError("Dim extent not found");
}
@@ -174,7 +174,7 @@ void DrawDimHelper::makeExtentDim3d(DrawViewPart* dvp, ReferenceVector reference
Base::Interpreter().runStringArg(
"App.activeDocument().%s.DirExtent = %d", dimName.c_str(), dimNum);
auto* dimExt = dynamic_cast<DrawViewDimExtent*>(doc->getObject(dimName.c_str()));
auto* dimExt = freecad_cast<DrawViewDimExtent*>(doc->getObject(dimName.c_str()));
if (!dimExt) {
throw Base::TypeError("Dim extent not found");
}

View File

@@ -168,7 +168,7 @@ void DrawGeomHatch::unsetupObject()
{
// Base::Console().Message("DGH::unsetupObject() - status: %lu removing: %d \n", getStatus(), isRemoving());
App::DocumentObject* source = Source.getValue();
DrawView* dv = dynamic_cast<DrawView*>(source);
DrawView* dv = freecad_cast<DrawView*>(source);
if (dv) {
dv->requestPaint();
}
@@ -211,7 +211,7 @@ std::vector<LineSet> DrawGeomHatch::makeLineSets(std::string fileSpec, std::stri
DrawViewPart* DrawGeomHatch::getSourceView() const
{
App::DocumentObject* obj = Source.getValue();
DrawViewPart* result = dynamic_cast<DrawViewPart*>(obj);
DrawViewPart* result = freecad_cast<DrawViewPart*>(obj);
return result;
}

View File

@@ -83,7 +83,7 @@ App::DocumentObjectExecReturn *DrawHatch::execute(void)
DrawViewPart* DrawHatch::getSourceView(void) const
{
App::DocumentObject* obj = Source.getValue();
DrawViewPart* result = dynamic_cast<DrawViewPart*>(obj);
DrawViewPart* result = freecad_cast<DrawViewPart*>(obj);
return result;
}
@@ -183,7 +183,7 @@ void DrawHatch::unsetupObject(void)
{
// Base::Console().Message("DH::unsetupObject() - status: %lu removing: %d \n", getStatus(), isRemoving());
App::DocumentObject* source = Source.getValue();
DrawView* dv = dynamic_cast<DrawView*>(source);
DrawView* dv = freecad_cast<DrawView*>(source);
if (dv) {
dv->requestPaint();
}

View File

@@ -146,7 +146,7 @@ DrawView* DrawLeaderLine::getBaseView() const
return nullptr;
}
auto cast = dynamic_cast<DrawView*>(baseObj);
auto cast = freecad_cast<DrawView*>(baseObj);
return cast;
}

View File

@@ -116,7 +116,7 @@ void DrawPage::onChanged(const App::Property* prop)
// this is needed just to mark the Views to recompute??
if (!isRestoring()) {
for (auto* obj : getViews()) {
auto* view = dynamic_cast<DrawView*>(obj);
auto* view = freecad_cast<DrawView*>(obj);
if (view && view->ScaleType.isValue("Page")) {
if (std::abs(view->Scale.getValue() - Scale.getValue()) > std::numeric_limits<float>::epsilon()) {
view->Scale.setValue(Scale.getValue());
@@ -128,7 +128,7 @@ void DrawPage::onChanged(const App::Property* prop)
else if (prop == &ProjectionType) {
// touch all ortho views in the Page as they may be dependent on Projection Type //(is this true?)
for (auto* obj : getViews()) {
auto* view = dynamic_cast<DrawProjGroup*>(obj);
auto* view = freecad_cast<DrawProjGroup*>(obj);
if (view && view->ProjectionType.isValue("Default")) {
view->ProjectionType.touch();
}
@@ -239,7 +239,7 @@ int DrawPage::addView(App::DocumentObject* docObj, bool setPosition)
return -1;
}
auto* view = dynamic_cast<DrawView*>(docObj);
auto* view = freecad_cast<DrawView*>(docObj);
if (!view) {
auto* link = dynamic_cast<App::Link*>(docObj);
@@ -247,7 +247,7 @@ int DrawPage::addView(App::DocumentObject* docObj, bool setPosition)
return -1;
}
view = dynamic_cast<DrawView*>(link->getLinkedObject());
view = freecad_cast<DrawView*>(link->getLinkedObject());
if (!view) {
return -1;
}
@@ -339,7 +339,7 @@ void DrawPage::updateAllViews()
//first, make sure all the Parts have been executed so GeometryObjects exist
for (auto& v : featViews) {
auto* part = dynamic_cast<DrawViewPart*>(v);
auto* part = freecad_cast<DrawViewPart*>(v);
if (part) {
//view, section, detail, dpgi
part->recomputeFeature();
@@ -348,12 +348,12 @@ void DrawPage::updateAllViews()
//second, do the rest of the views that may depend on a part view
//TODO: check if we have 2 layers of dependency (ex. leader > weld > tile?)
for (auto& v : featViews) {
auto* part = dynamic_cast<DrawViewPart*>(v);
auto* part = freecad_cast<DrawViewPart*>(v);
if (part) {
continue;
}
auto* view = dynamic_cast<DrawView*>(v);
auto* view = freecad_cast<DrawView*>(v);
if (view) {
view->overrideKeepUpdated(true);
view->recomputeFeature();

View File

@@ -356,7 +356,7 @@ void DrawProjGroup::getViewArea(std::array<DrawProjGroupItem*, MAXPROJECTIONCOUN
App::DocumentObject* DrawProjGroup::getProjObj(const char* viewProjType) const
{
for (auto it : Views.getValues()) {
auto projPtr(dynamic_cast<DrawProjGroupItem*>(it));
auto projPtr(freecad_cast<DrawProjGroupItem*>(it));
if (!projPtr) {
//if an element in Views is not a DPGI, something really bad has happened somewhere
Base::Console().Error("PROBLEM - DPG::getProjObj - non DPGI entry in Views! %s / %s\n",
@@ -540,7 +540,7 @@ int DrawProjGroup::purgeProjections()
while (!Views.getValues().empty()) {
std::vector<DocumentObject*> views = Views.getValues();
DocumentObject* dObj = views.back();
auto* dpgi = dynamic_cast<DrawProjGroupItem*>(dObj);
auto* dpgi = freecad_cast<DrawProjGroupItem*>(dObj);
if (dpgi) {
std::string itemName = dpgi->Type.getValueAsString();
removeProjection(itemName.c_str());
@@ -866,7 +866,7 @@ void DrawProjGroup::arrangeViewPointers(
bool thirdAngle = (strcmp(projType, "Third Angle") == 0);
for (auto it : Views.getValues()) {
auto oView(dynamic_cast<DrawProjGroupItem*>(it));
auto oView(freecad_cast<DrawProjGroupItem*>(it));
if (!oView) {
//if an element in Views is not a DPGI, something really bad has happened somewhere
Base::Console().Error(
@@ -944,7 +944,7 @@ void DrawProjGroup::recomputeChildren()
{
// Base::Console().Message("DPG::recomputeChildren() - waiting: %d\n", waitingForChildren());
for (const auto it : Views.getValues()) {
auto view(dynamic_cast<DrawProjGroupItem*>(it));
auto view(freecad_cast<DrawProjGroupItem*>(it));
if (!view) {
throw Base::TypeError("Error: projection in DPG list is not a DPGI!");
}
@@ -959,7 +959,7 @@ void DrawProjGroup::autoPositionChildren()
// Base::Console().Message("DPG::autoPositionChildren() - %s - waiting: %d\n",
// getNameInDocument(), waitingForChildren());
for (const auto it : Views.getValues()) {
auto view(dynamic_cast<DrawProjGroupItem*>(it));
auto view(freecad_cast<DrawProjGroupItem*>(it));
if (!view) {
//if an element in Views is not a DPGI, something really bad has happened somewhere
throw Base::TypeError("Error: projection in DPG list is not a DPGI!");
@@ -977,7 +977,7 @@ void DrawProjGroup::updateChildrenScale()
{
// Base::Console().Message("DPG::updateChildrenScale() - waiting: %d\n", waitingForChildren());
for (const auto it : Views.getValues()) {
auto view(dynamic_cast<DrawProjGroupItem*>(it));
auto view(freecad_cast<DrawProjGroupItem*>(it));
if (!view) {
//if an element in Views is not a DPGI, something really bad has happened somewhere
throw Base::TypeError("Error: projection in DPG list is not a DPGI!");
@@ -995,7 +995,7 @@ void DrawProjGroup::updateChildrenScale()
void DrawProjGroup::updateChildrenSource()
{
for (const auto it : Views.getValues()) {
auto view(dynamic_cast<DrawProjGroupItem*>(it));
auto view(freecad_cast<DrawProjGroupItem*>(it));
if (!view) {
//if an element in Views is not a DPGI, something really bad has happened somewhere
Base::Console().Error(
@@ -1019,7 +1019,7 @@ void DrawProjGroup::updateChildrenSource()
void DrawProjGroup::updateChildrenLock()
{
for (const auto it : Views.getValues()) {
auto view(dynamic_cast<DrawProjGroupItem*>(it));
auto view(freecad_cast<DrawProjGroupItem*>(it));
if (!view) {
//if an element in Views is not a DPGI, something really bad has happened somewhere
Base::Console().Error(
@@ -1034,7 +1034,7 @@ void DrawProjGroup::updateChildrenLock()
void DrawProjGroup::updateChildrenEnforce(void)
{
for (const auto it : Views.getValues()) {
auto view(dynamic_cast<DrawProjGroupItem*>(it));
auto view(freecad_cast<DrawProjGroupItem*>(it));
if (!view) {
//if an element in Views is not a DPGI, something really bad has happened somewhere
Base::Console().Error(

View File

@@ -89,7 +89,7 @@ App::DocumentObjectExecReturn *DrawRichAnno::execute()
DrawView* DrawRichAnno::getBaseView() const
{
// Base::Console().Message("DRA::getBaseView() - %s\n", getNameInDocument());
return dynamic_cast<DrawView*>(AnnoParent.getValue());
return freecad_cast<DrawView*>(AnnoParent.getValue());
}
//finds the first DrawPage in this Document that claims to own this DrawRichAnno
@@ -102,7 +102,7 @@ DrawPage* DrawRichAnno::findParentPage() const
return DrawView::findParentPage();
}
DrawView* parent = dynamic_cast<DrawView*>(AnnoParent.getValue());
DrawView* parent = freecad_cast<DrawView*>(AnnoParent.getValue());
if (parent) {
return parent->findParentPage();
}

View File

@@ -88,7 +88,7 @@ void DrawTile::handleChangedPropertyType(Base::XMLReader &reader, const char *Ty
DrawView* DrawTile::getParent() const
{
// Base::Console().Message("DT::getParent() - %s\n", getNameInDocument());
return dynamic_cast<DrawView*>(TileParent.getValue());
return freecad_cast<DrawView*>(TileParent.getValue());
}
PyObject *DrawTile::getPyObject()

View File

@@ -660,7 +660,7 @@ void DrawView::setScaleAttribute()
//! existence of the parent DrawProjGroup
bool DrawView::isProjGroupItem(DrawViewPart* item)
{
auto dpgi = dynamic_cast<DrawProjGroupItem*>(item);
auto dpgi = freecad_cast<DrawProjGroupItem*>(item);
if (!dpgi) {
return false;
}

View File

@@ -211,7 +211,7 @@ void DrawViewBalloon::handleXYLock()
DrawView* DrawViewBalloon::getParentView() const
{
App::DocumentObject* obj = SourceView.getValue();
DrawView* result = dynamic_cast<DrawView*>(obj);
DrawView* result = freecad_cast<DrawView*>(obj);
return result;
}

View File

@@ -90,7 +90,7 @@ int DrawViewCollection::addView(App::DocumentObject* docObj)
return -1;
}
auto* view = dynamic_cast<DrawView*>(docObj);
auto* view = freecad_cast<DrawView*>(docObj);
if (!view) {
auto* link = dynamic_cast<App::Link*>(docObj);
@@ -99,7 +99,7 @@ int DrawViewCollection::addView(App::DocumentObject* docObj)
}
if (link) {
view = dynamic_cast<DrawView*>(link->getLinkedObject());
view = freecad_cast<DrawView*>(link->getLinkedObject());
if (!view) {
return -1;
}
@@ -228,7 +228,7 @@ QRectF DrawViewCollection::getRect() const
{
QRectF result;
for (auto& v : getViews()) {
auto *view = dynamic_cast<DrawView*>(v);
auto *view = freecad_cast<DrawView*>(v);
if (!view) {
throw Base::ValueError("DrawViewCollection::getRect bad View\n");
}

View File

@@ -448,7 +448,7 @@ TopoDS_Shape DrawViewDetail::projectEdgesOntoFace(TopoDS_Shape& edgeShape, TopoD
Base::Vector3d DrawViewDetail::mapPoint3dToDetail(const Base::Vector3d& inPoint) const
{
auto baseObj = BaseView.getValue();
auto baseDvp = dynamic_cast<DrawViewPart*>(baseObj);
auto baseDvp = freecad_cast<DrawViewPart*>(baseObj);
if (!baseDvp) {
throw Base::RuntimeError("Detail has no BaseView");
}
@@ -502,7 +502,7 @@ void DrawViewDetail::handleChangedPropertyType(Base::XMLReader &reader, const ch
void DrawViewDetail::unsetupObject()
{
App::DocumentObject* baseObj = BaseView.getValue();
DrawView* base = dynamic_cast<DrawView*>(baseObj);
DrawView* base = freecad_cast<DrawView*>(baseObj);
if (base) {
base->requestPaint();
}

View File

@@ -71,7 +71,7 @@ App::DocumentObjectExecReturn *DrawViewDimExtent::execute(void)
App::DocumentObject* docObj = Source.getValue();
if (!docObj)
return App::DocumentObject::StdReturn;
DrawViewPart* dvp = dynamic_cast<DrawViewPart*>(docObj);
DrawViewPart* dvp = freecad_cast<DrawViewPart*>(docObj);
if (!dvp)
return App::DocumentObject::StdReturn;

View File

@@ -729,7 +729,7 @@ double DrawViewDimension::getProjectedDimValue() const
if (Type.isValue("Distance") || Type.isValue("DistanceX") || Type.isValue("DistanceY")) {
pointPair pts = getLinearPoints();
auto dbv = dynamic_cast<DrawBrokenView*>(getViewPart());
auto dbv = freecad_cast<DrawBrokenView*>(getViewPart());
if (dbv) {
// raw pts from view are inverted Y, so we need to un-invert them before mapping
// raw pts are scaled, so we need to unscale them for mapPoint2dFromView

View File

@@ -972,7 +972,7 @@ ChangePointVector DrawViewSection::getChangePointsFromSectionLine()
// Base::Console().Message("Dvs::getChangePointsFromSectionLine()\n");
ChangePointVector result;
std::vector<gp_Pnt> allPoints;
DrawViewPart* baseDvp = dynamic_cast<DrawViewPart*>(BaseView.getValue());
DrawViewPart* baseDvp = freecad_cast<DrawViewPart*>(BaseView.getValue());
if (baseDvp) {
std::pair<Base::Vector3d, Base::Vector3d> lineEnds = sectionLineEnds();
// make start and end marks

View File

@@ -77,7 +77,7 @@ void DrawWeldSymbol::onSettingDocument()
std::string tileName1 = doc->getUniqueObjectName("TileWeld");
auto tile1Obj( doc->addObject( "TechDraw::DrawTileWeld", tileName1.c_str() ) );
DrawTileWeld* tile1 = dynamic_cast<DrawTileWeld*>(tile1Obj);
DrawTileWeld* tile1 = freecad_cast<DrawTileWeld*>(tile1Obj);
if (tile1) {
tile1->Label.setValue(DrawUtil::translateArbitrary("DrawTileWeld", "TileWeld", tileName1));
tile1->TileParent.setValue(this);
@@ -85,7 +85,7 @@ void DrawWeldSymbol::onSettingDocument()
std::string tileName2 = doc->getUniqueObjectName("TileWeld");
auto tile2Obj( doc->addObject( "TechDraw::DrawTileWeld", tileName2.c_str() ) );
DrawTileWeld* tile2 = dynamic_cast<DrawTileWeld*>(tile2Obj);
DrawTileWeld* tile2 = freecad_cast<DrawTileWeld*>(tile2Obj);
if (tile2) {
tile2->Label.setValue(DrawUtil::translateArbitrary("DrawTileWeld", "TileWeld", tileName2));
tile2->TileParent.setValue(this);

View File

@@ -165,7 +165,7 @@ DrawViewPart* LandmarkDimension::getViewPart() const
{
std::vector<App::DocumentObject*> refs2d = References2D.getValues();
App::DocumentObject* obj = refs2d.front();
DrawViewPart* dvp = dynamic_cast<DrawViewPart*>(obj);
DrawViewPart* dvp = freecad_cast<DrawViewPart*>(obj);
return dvp;
}

View File

@@ -104,7 +104,7 @@ PyObject *PropertyGeomFormatList::getPyObject()
void PropertyGeomFormatList::setPyObject(PyObject *value)
{
// check container of this property to notify about changes
// Part2DObject* part2d = dynamic_cast<Part2DObject*>(this->getContainer());
// Part2DObject* part2d = freecad_cast<Part2DObject*>(this->getContainer());
if (PySequence_Check(value)) {
Py::Sequence sequence(value);

View File

@@ -137,7 +137,7 @@ private:
Gui::Document* activeGui =
Gui::Application::Instance->getDocument(page->getDocument());
Gui::ViewProvider* vp = activeGui->getViewProvider(obj);
ViewProviderPage* vpPage = dynamic_cast<ViewProviderPage*>(vp);
ViewProviderPage* vpPage = freecad_cast<ViewProviderPage*>(vp);
if (!vpPage) {
throw Py::TypeError("TechDraw can not find Page");
}

View File

@@ -317,7 +317,7 @@ void CmdTechDrawView::activated(int iMsg)
std::string PageName = page->getNameInDocument();
// switch to the page if it's not current active window
auto* vpp = dynamic_cast<ViewProviderPage*>
auto* vpp = freecad_cast<ViewProviderPage*>
(Gui::Application::Instance->getViewProvider(page));
if (vpp) {
vpp->show();
@@ -1296,9 +1296,9 @@ void CmdTechDrawBalloon::activated(int iMsg)
std::string PageName = page->getNameInDocument();
Gui::Document* guiDoc = Gui::Application::Instance->getDocument(page->getDocument());
ViewProviderPage* pageVP = dynamic_cast<ViewProviderPage*>(guiDoc->getViewProvider(page));
ViewProviderPage* pageVP = freecad_cast<ViewProviderPage*>(guiDoc->getViewProvider(page));
ViewProviderDrawingView* viewVP =
dynamic_cast<ViewProviderDrawingView*>(guiDoc->getViewProvider(objFeat));
freecad_cast<ViewProviderDrawingView*>(guiDoc->getViewProvider(objFeat));
if (pageVP && viewVP) {
QGVPage* viewPage = pageVP->getQGVPage();
@@ -1820,7 +1820,7 @@ void CmdTechDrawExportPageSVG::activated(int iMsg)
Gui::Document* activeGui = Gui::Application::Instance->getDocument(page->getDocument());
Gui::ViewProvider* vp = activeGui->getViewProvider(page);
ViewProviderPage* vpPage = dynamic_cast<ViewProviderPage*>(vp);
ViewProviderPage* vpPage = freecad_cast<ViewProviderPage*>(vp);
if (vpPage) {
vpPage->show(); // make sure a mdi will be available

View File

@@ -1517,7 +1517,7 @@ void CmdTechDrawShowAll::activated(int iMsg)
}
Gui::ViewProvider* vp = QGIView::getViewProvider(baseFeat);
auto partVP = dynamic_cast<ViewProviderViewPart*>(vp);
auto partVP = freecad_cast<ViewProviderViewPart*>(vp);
if (partVP) {
bool state = partVP->ShowAllEdges.getValue();
state = !state;

View File

@@ -339,7 +339,7 @@ public:
QGIDatumLabel* getDimLabel(DrawViewDimension* d)
{
auto* vp = dynamic_cast<ViewProviderDimension*>(Gui::Application::Instance->getViewProvider(d));
auto* vp = freecad_cast<ViewProviderDimension*>(Gui::Application::Instance->getViewProvider(d));
if (!vp) {
return nullptr;
}
@@ -361,7 +361,7 @@ public:
QPointF getDimPositionToBe(QPoint pos, QPointF curPos = QPointF(), bool textToMiddle = false, Base::Vector3d dir = Base::Vector3d(),
Base::Vector3d delta = Base::Vector3d(), DimensionType type = DimensionType::Distance, int i = 0)
{
auto* vpp = dynamic_cast<ViewProviderDrawingView*>(Gui::Application::Instance->getViewProvider(partFeat));
auto* vpp = freecad_cast<ViewProviderDrawingView*>(Gui::Application::Instance->getViewProvider(partFeat));
if (!vpp) { return QPointF(); }

View File

@@ -328,7 +328,7 @@ void CmdTechDrawToggleFrame::activated(int iMsg)
Gui::Document* activeGui = Gui::Application::Instance->getDocument(page->getDocument());
Gui::ViewProvider* vp = activeGui->getViewProvider(page);
ViewProviderPage* vpPage = dynamic_cast<ViewProviderPage*>(vp);
ViewProviderPage* vpPage = freecad_cast<ViewProviderPage*>(vp);
if (!vpPage) {
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("No TechDraw Page"),

View File

@@ -2038,7 +2038,7 @@ std::string _createBalloon(Gui::Command* cmd, TechDraw::DrawViewPart* objFeat)
std::string featName;
TechDraw::DrawPage* page = objFeat->findParentPage();
Gui::Document* guiDoc = Gui::Application::Instance->getDocument(page->getDocument());
auto pageVP = dynamic_cast<ViewProviderPage*>(guiDoc->getViewProvider(page));
auto pageVP = freecad_cast<ViewProviderPage*>(guiDoc->getViewProvider(page));
if (pageVP) {
QGSPage* scenePage = pageVP->getQGSPage();
featName = scenePage->getDrawPage()->getDocument()->getUniqueObjectName("Balloon");

View File

@@ -214,7 +214,7 @@ void QGIDatumLabel::snapPosition(QPointF& pos)
continue;
}
auto* vp = dynamic_cast<ViewProviderDimension*>(Gui::Application::Instance->getViewProvider(d));
auto* vp = freecad_cast<ViewProviderDimension*>(Gui::Application::Instance->getViewProvider(d));
if (!vp) { continue; }
auto* qgivDi(dynamic_cast<QGIViewDimension*>(vp->getQView()));
if (!qgivDi) { continue; }
@@ -277,7 +277,7 @@ void QGIDatumLabel::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event)
return;
}
auto ViewProvider = dynamic_cast<ViewProviderDimension*>(
auto ViewProvider = freecad_cast<ViewProviderDimension*>(
qgivDimension->getViewProvider(qgivDimension->getViewObject()));
if (!ViewProvider) {
qWarning() << "QGIDatumLabel::mouseDoubleClickEvent: No valid view provider";

View File

@@ -155,7 +155,7 @@ void QGILeaderLine::mouseReleaseEvent(QGraphicsSceneMouseEvent* event)
//! start editor on double click
void QGILeaderLine::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event)
{
auto ViewProvider = dynamic_cast<ViewProviderLeader*>(getViewProvider(getLeaderFeature()));
auto ViewProvider = freecad_cast<ViewProviderLeader*>(getViewProvider(getLeaderFeature()));
if (!ViewProvider) {
qWarning() << "QGILeaderLine::mouseDoubleClickEvent: No valid view provider";
return;
@@ -632,7 +632,7 @@ QColor QGILeaderLine::prefNormalColor()
// Base::Console().Message("QGILL::getNormalColor()\n");
setNormalColor(PreferencesGui::leaderQColor());
auto vp = dynamic_cast<ViewProviderLeader*>(getViewProvider(getViewObject()));
auto vp = freecad_cast<ViewProviderLeader*>(getViewProvider(getViewObject()));
if (vp) {
QColor normal = vp->Color.getValue().asValue<QColor>();
setNormalColor(PreferencesGui::getAccessibleQColor(normal));
@@ -659,7 +659,7 @@ void QGILeaderLine::paint(QPainter* painter, const QStyleOptionGraphicsItem* opt
bool QGILeaderLine::useOldCoords() const
{
auto vp = dynamic_cast<ViewProviderLeader*>(getViewProvider(getViewObject()));
auto vp = freecad_cast<ViewProviderLeader*>(getViewProvider(getViewObject()));
if (vp) {
return vp->UseOldCoords.getValue();
}

View File

@@ -225,7 +225,7 @@ void QGIView::snapPosition(QPointF& newPosition)
return;
}
auto dvp = dynamic_cast<DrawViewPart*>(feature);
auto dvp = freecad_cast<DrawViewPart*>(feature);
if (dvp &&
!dvp->hasGeometry()) {
// too early. wait for updates to finish.
@@ -262,7 +262,7 @@ void QGIView::snapPosition(QPointF& newPosition)
continue;
}
auto viewFeature = view->getViewObject();
auto viewDvp = dynamic_cast<DrawViewPart*>(viewFeature);
auto viewDvp = freecad_cast<DrawViewPart*>(viewFeature);
auto viewScenePos = view->scenePos();
if (viewDvp &&
@@ -316,7 +316,7 @@ void QGIView::snapSectionView(const TechDraw::DrawViewSection* sectionView,
if (!baseView) {
return;
}
auto* vpdv = dynamic_cast<ViewProviderDrawingView*>(getViewProvider(baseView));
auto* vpdv = freecad_cast<ViewProviderDrawingView*>(getViewProvider(baseView));
if (!vpdv) {
return;
}
@@ -810,7 +810,7 @@ ViewProviderPage* QGIView::getViewProviderPage(TechDraw::DrawView* dView)
return nullptr;
}
return dynamic_cast<ViewProviderPage*>(activeGui->getViewProvider(page));
return freecad_cast<ViewProviderPage*>(activeGui->getViewProvider(page));
}
//remove a child of this from scene while keeping scene indexes valid
@@ -833,7 +833,7 @@ bool QGIView::getFrameState()
Gui::Document* activeGui = Gui::Application::Instance->getDocument(page->getDocument());
Gui::ViewProvider* vp = activeGui->getViewProvider(page);
ViewProviderPage* vpp = dynamic_cast<ViewProviderPage*>(vp);
ViewProviderPage* vpp = freecad_cast<ViewProviderPage*>(vp);
if (!vpp) return true;
return vpp->getFrameState();

View File

@@ -188,7 +188,7 @@ void QGIViewAnnotation::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event)
if (!annotation) {
return;
}
auto ViewProvider = dynamic_cast<ViewProviderAnnotation*>(getViewProvider(annotation));
auto ViewProvider = freecad_cast<ViewProviderAnnotation*>(getViewProvider(annotation));
if (!ViewProvider) {
qWarning() << "QGIViewAnnotation::mouseDoubleClickEvent: No valid view provider";
return;

View File

@@ -149,7 +149,7 @@ void QGIBalloonLabel::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event)
return;
}
auto ViewProvider = dynamic_cast<ViewProviderBalloon*>(
auto ViewProvider = freecad_cast<ViewProviderBalloon*>(
qgivBalloon->getViewProvider(qgivBalloon->getViewObject()));
if (!ViewProvider) {
qWarning() << "QGIBalloonLabel::mouseDoubleClickEvent: No valid view provider";
@@ -366,7 +366,7 @@ void QGIViewBalloon::setViewPartFeature(TechDraw::DrawViewBalloon* balloonFeat)
double scale = 1.0;
App::DocumentObject* docObj = balloonFeat->SourceView.getValue();
if (docObj) {
balloonParent = dynamic_cast<DrawView*>(docObj);
balloonParent = freecad_cast<DrawView*>(docObj);
if (balloonParent) {
scale = balloonParent->getScale();
}
@@ -547,7 +547,7 @@ void QGIViewBalloon::placeBalloon(QPointF pos)
return;
}
DrawView* balloonParent = dynamic_cast<DrawView*>(balloon->SourceView.getValue());
DrawView* balloonParent = freecad_cast<DrawView*>(balloon->SourceView.getValue());
if (!balloonParent) {
return;
}
@@ -565,7 +565,7 @@ void QGIViewBalloon::placeBalloon(QPointF pos)
QGIView* qgivParent = nullptr;
QPointF viewPos;
Gui::ViewProvider* objVp = QGIView::getViewProvider(balloonParent);
auto partVP = dynamic_cast<ViewProviderViewPart*>(objVp);
auto partVP = freecad_cast<ViewProviderViewPart*>(objVp);
if (partVP) {
qgivParent = partVP->getQView();
if (qgivParent) {
@@ -944,7 +944,7 @@ QColor QGIViewBalloon::prefNormalColor()
ViewProviderBalloon* vpBalloon = nullptr;
Gui::ViewProvider* vp = getViewProvider(getBalloonFeat());
if (vp) {
vpBalloon = dynamic_cast<ViewProviderBalloon*>(vp);
vpBalloon = freecad_cast<ViewProviderBalloon*>(vp);
if (vpBalloon) {
Base::Color fcColor = Preferences::getAccessibleColor(vpBalloon->Color.getValue());
setNormalColor(fcColor.asValue<QColor>());
@@ -968,9 +968,9 @@ DrawView* QGIViewBalloon::getSourceView() const
{
DrawView* balloonParent = nullptr;
App::DocumentObject* docObj = getViewObject();
DrawViewBalloon* dvb = dynamic_cast<DrawViewBalloon*>(docObj);
DrawViewBalloon* dvb = freecad_cast<DrawViewBalloon*>(docObj);
if (dvb) {
balloonParent = dynamic_cast<DrawView*>(dvb->SourceView.getValue());
balloonParent = freecad_cast<DrawView*>(dvb->SourceView.getValue());
}
return balloonParent;
}

View File

@@ -2261,7 +2261,7 @@ QColor QGIViewDimension::prefNormalColor()
ViewProviderDimension* vpDim = nullptr;
Gui::ViewProvider* vp = getViewProvider(getDimFeat());
if (vp) {
vpDim = dynamic_cast<ViewProviderDimension*>(vp);
vpDim = freecad_cast<ViewProviderDimension*>(vp);
if (vpDim) {
Base::Color fcColor = vpDim->Color.getValue();
fcColor = Preferences::getAccessibleColor(fcColor);

View File

@@ -300,7 +300,7 @@ void QGIViewPart::drawAllFaces(void)
newFace->setHatchOffset(fGeom->PatternOffset.getValue());
newFace->setHatchFile(fGeom->PatIncluded.getValue());
Gui::ViewProvider* gvp = QGIView::getViewProvider(fGeom);
ViewProviderGeomHatch* geomVp = dynamic_cast<ViewProviderGeomHatch*>(gvp);
ViewProviderGeomHatch* geomVp = freecad_cast<ViewProviderGeomHatch*>(gvp);
if (geomVp) {
newFace->setHatchColor(geomVp->ColorPattern.getValue());
newFace->setLineWeight(geomVp->WeightPattern.getValue());
@@ -321,7 +321,7 @@ void QGIViewPart::drawAllFaces(void)
// get the properties from the hatch viewprovider
Gui::ViewProvider* gvp = QGIView::getViewProvider(fHatch);
ViewProviderHatch* hatchVp = dynamic_cast<ViewProviderHatch*>(gvp);
ViewProviderHatch* hatchVp = freecad_cast<ViewProviderHatch*>(gvp);
if (hatchVp) {
if (hatchVp->HatchScale.getValue() > 0.0) {
newFace->setHatchScale(hatchVp->HatchScale.getValue());
@@ -993,7 +993,7 @@ void QGIViewPart::highlightMoved(QGIHighlight* highlight, QPointF newPos)
std::string highlightName = highlight->getFeatureName();
App::Document* doc = getViewObject()->getDocument();
App::DocumentObject* docObj = doc->getObject(highlightName.c_str());
auto detail = dynamic_cast<DrawViewDetail*>(docObj);
auto detail = freecad_cast<DrawViewDetail*>(docObj);
if (detail) {
auto oldAnchor = detail->AnchorPoint.getValue();
Base::Vector3d delta = Rez::appX(DrawUtil::toVector3d(newPos)) / getViewObject()->getScale();

View File

@@ -58,7 +58,7 @@ void QGIViewSection::drawSectionFace()
return;
}
ViewProviderViewSection* sectionVp = dynamic_cast<ViewProviderViewSection*>(QGIView::getViewProvider(section));
ViewProviderViewSection* sectionVp = freecad_cast<ViewProviderViewSection*>(QGIView::getViewProvider(section));
if (!sectionVp) {
return;
}

View File

@@ -112,7 +112,7 @@ void QGIViewSymbol::drawSvg()
}
auto vp = getViewProvider(viewSymbol);
auto vps = dynamic_cast<ViewProviderSymbol*>(vp);
auto vps = freecad_cast<ViewProviderSymbol*>(vp);
if (!vp || !vps) {
return;
}

View File

@@ -224,7 +224,7 @@ TechDraw::DrawViewImage* TaskActiveView::createActiveView()
if (guiDoc) {
Gui::ViewProvider* vp = guiDoc->getViewProvider(newImg);
if (vp) {
auto vpImage = dynamic_cast<ViewProviderImage*>(vp);
auto vpImage = freecad_cast<ViewProviderImage*>(vp);
if (vpImage) {
vpImage->Crop.setValue(ui->cbCrop->isChecked());
}

View File

@@ -507,7 +507,7 @@ void TaskCenterLine::enableTaskButtons(bool isEnabled)
double TaskCenterLine::getCenterWidth()
{
Gui::ViewProvider* vp = QGIView::getViewProvider(m_partFeat);
auto partVP = dynamic_cast<ViewProviderViewPart*>(vp);
auto partVP = freecad_cast<ViewProviderViewPart*>(vp);
if (!partVP) {
return TechDraw::LineGroup::getDefaultWidth("Graphic");
}

View File

@@ -217,7 +217,7 @@ void TaskCosVertex::onTrackerFinished(std::vector<QPointF> pts, QGIView* qgParen
double y = Rez::guiX(m_baseFeat->Y.getValue());
DrawViewPart* dvp = m_baseFeat;
DrawProjGroupItem* dpgi = dynamic_cast<DrawProjGroupItem*>(dvp);
DrawProjGroupItem* dpgi = freecad_cast<DrawProjGroupItem*>(dvp);
if (dpgi) {
DrawProjGroup* dpg = dpgi->getPGroup();
if (dpg) {

View File

@@ -391,7 +391,7 @@ void TaskDetail::onHighlightMoved(QPointF dragEnd)
double y = Rez::guiX(getBaseFeat()->Y.getValue());
DrawViewPart* dvp = getBaseFeat();
DrawProjGroupItem* dpgi = dynamic_cast<DrawProjGroupItem*>(dvp);
DrawProjGroupItem* dpgi = freecad_cast<DrawProjGroupItem*>(dvp);
if (dpgi) {
DrawProjGroup* dpg = dpgi->getPGroup();
if (!dpg) {
@@ -504,7 +504,7 @@ void TaskDetail::updateDetail()
QPointF TaskDetail::getAnchorScene()
{
DrawViewPart* dvp = getBaseFeat();
DrawProjGroupItem* dpgi = dynamic_cast<DrawProjGroupItem*>(dvp);
DrawProjGroupItem* dpgi = freecad_cast<DrawProjGroupItem*>(dvp);
DrawViewDetail* dvd = getDetailFeat();
Base::Vector3d anchorPos = dvd->AnchorPoint.getValue();
anchorPos.y = -anchorPos.y;

View File

@@ -393,7 +393,7 @@ void TaskLeaderLine::createLeaderFeature(std::vector<Base::Vector3d> sceneDeltas
if (m_lineFeat) {
Gui::ViewProvider* vp = QGIView::getViewProvider(m_lineFeat);
auto leadVP = dynamic_cast<ViewProviderLeader*>(vp);
auto leadVP = freecad_cast<ViewProviderLeader*>(vp);
if (leadVP) {
Base::Color ac;
ac.setValue<QColor>(ui->cpLineColor->color());
@@ -700,7 +700,7 @@ QGIView* TaskLeaderLine::findParentQGIV()
}
Gui::ViewProvider* gvp = QGIView::getViewProvider(m_baseFeat);
ViewProviderDrawingView* vpdv = dynamic_cast<ViewProviderDrawingView*>(gvp);
ViewProviderDrawingView* vpdv = freecad_cast<ViewProviderDrawingView*>(gvp);
if (!vpdv) {
return nullptr;
}

View File

@@ -317,7 +317,7 @@ void TaskRichAnno::createAnnoFeature()
if (m_annoFeat) {
Gui::ViewProvider* vp = QGIView::getViewProvider(m_annoFeat);
auto annoVP = dynamic_cast<ViewProviderRichAnno*>(vp);
auto annoVP = freecad_cast<ViewProviderRichAnno*>(vp);
if (annoVP) {
Base::Color ac;
ac.setValue<QColor>(ui->cpFrameColor->color());

View File

@@ -80,7 +80,7 @@ void TemplateTextField::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
ui.setFieldContent(tmplte->EditableTexts[fieldNameStr]);
auto qName = QString::fromStdString(fieldNameStr);
auto svgTemplate = dynamic_cast<DrawSVGTemplate*>(tmplte);
auto svgTemplate = freecad_cast<DrawSVGTemplate*>(tmplte);
if (svgTemplate) {
// preset the autofill with the current value - something might have changed since this field was created
m_autofillString = svgTemplate->getAutofillByEditableName(qName);

View File

@@ -272,7 +272,7 @@ ViewProviderPage* ViewProviderDrawingView::getViewProviderPage() const
Gui::Document* guiDoc = Gui::Application::Instance->getDocument(getViewObject()->getDocument());
if (guiDoc) {
Gui::ViewProvider* vp = guiDoc->getViewProvider(getViewObject()->findParentPage());
return dynamic_cast<ViewProviderPage*>(vp);
return freecad_cast<ViewProviderPage*>(vp);
}
return nullptr;
}

View File

@@ -369,7 +369,7 @@ MDIViewPage* ViewProviderPage::getMDIViewPage() const
DrawTemplate* ViewProviderPage::getTemplate() const
{
return dynamic_cast<DrawTemplate*>(getDrawPage()->Template.getValue());
return freecad_cast<DrawTemplate*>(getDrawPage()->Template.getValue());
}
@@ -378,7 +378,7 @@ QGITemplate* ViewProviderPage::getQTemplate() const
Gui::Document* guiDoc = Gui::Application::Instance->getDocument(getDrawPage()->getDocument());
if (guiDoc) {
Gui::ViewProvider* vp = guiDoc->getViewProvider(getTemplate());
auto vpTemplate = dynamic_cast<ViewProviderTemplate*>(vp);
auto vpTemplate = freecad_cast<ViewProviderTemplate*>(vp);
if (vpTemplate) {
return vpTemplate->getQTemplate();
}
@@ -455,7 +455,7 @@ void ViewProviderPage::setTemplateMarkers(bool state) const
templateFeat = getDrawPage()->Template.getValue();
Gui::Document* guiDoc = Gui::Application::Instance->getDocument(templateFeat->getDocument());
Gui::ViewProvider* vp = guiDoc->getViewProvider(templateFeat);
auto* vpt = dynamic_cast<ViewProviderTemplate*>(vp);
auto* vpt = freecad_cast<ViewProviderTemplate*>(vp);
if (vpt) {
vpt->setMarkers(state);
QGITemplate* t = vpt->getQTemplate();

View File

@@ -172,7 +172,7 @@ void ViewProviderViewPart::onChanged(const App::Property* prop)
if (auto part = getViewPart(); part && part->isDerivedFrom<TechDraw::DrawViewDetail>() &&
prop == &(HighlightAdjust)) {
auto detail = static_cast<DrawViewDetail*>(getViewPart());
auto baseDvp = dynamic_cast<DrawViewPart*>(detail->BaseView.getValue());
auto baseDvp = freecad_cast<DrawViewPart*>(detail->BaseView.getValue());
if (baseDvp) {
baseDvp->requestPaint();
}