Gui: Use freecad_cast whenever possible
This commit is contained in:
committed by
Benjamin Nauck
parent
585d277e49
commit
ef357aa07a
@@ -62,7 +62,7 @@ void ActiveObjectList::setHighlight(const ObjectInfo &info, HighlightMode mode,
|
||||
auto obj = getObject(info, false);
|
||||
if (!obj)
|
||||
return;
|
||||
auto vp = dynamic_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(obj));
|
||||
auto vp = freecad_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(obj));
|
||||
if (!vp)
|
||||
return;
|
||||
|
||||
|
||||
@@ -1346,7 +1346,7 @@ void StdCmdDelete::activated(int iMsg)
|
||||
auto editDoc = Application::Instance->editDocument();
|
||||
ViewProviderDocumentObject *vpedit = nullptr;
|
||||
if(editDoc)
|
||||
vpedit = dynamic_cast<ViewProviderDocumentObject*>(editDoc->getInEdit());
|
||||
vpedit = freecad_cast<ViewProviderDocumentObject*>(editDoc->getInEdit());
|
||||
if(vpedit && !vpedit->acceptDeletionsInEdit()) {
|
||||
for(auto &sel : Selection().getSelectionEx(editDoc->getDocument()->getName())) {
|
||||
if(sel.getObject() == vpedit->getObject()) {
|
||||
|
||||
@@ -98,7 +98,7 @@ void StdCmdRandomColor::activated(int iMsg)
|
||||
// NOLINTEND
|
||||
auto objColor = Base::Color(fRed, fGrn, fBlu);
|
||||
|
||||
auto vpLink = dynamic_cast<ViewProviderLink*>(view);
|
||||
auto vpLink = freecad_cast<ViewProviderLink*>(view);
|
||||
if (vpLink) {
|
||||
if (!vpLink->OverrideMaterial.getValue()) {
|
||||
vpLink->OverrideMaterial.setValue(true);
|
||||
|
||||
@@ -755,7 +755,7 @@ void StdCmdLinkSelectLinked::activated(int)
|
||||
Selection().addSelection(linked->getDocument()->getName(),linked->getNameInDocument(),subname.c_str());
|
||||
auto doc = Application::Instance->getDocument(linked->getDocument());
|
||||
if(doc) {
|
||||
auto vp = dynamic_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(linked));
|
||||
auto vp = freecad_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(linked));
|
||||
doc->setActiveView(vp);
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -2865,7 +2865,7 @@ static std::vector<std::string> getBoxSelection(
|
||||
if(!vis)
|
||||
continue;
|
||||
|
||||
auto svp = dynamic_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(sobj));
|
||||
auto svp = freecad_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(sobj));
|
||||
if(!svp)
|
||||
continue;
|
||||
|
||||
@@ -2928,7 +2928,7 @@ static void doSelect(void* ud, SoEventCallback * cb)
|
||||
if(App::GeoFeatureGroupExtension::getGroupOfObject(obj))
|
||||
continue;
|
||||
|
||||
auto vp = dynamic_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(obj));
|
||||
auto vp = freecad_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(obj));
|
||||
if (!vp || !vp->isVisible())
|
||||
continue;
|
||||
|
||||
@@ -3110,7 +3110,7 @@ bool StdCmdTreeSelectAllInstances::isActive()
|
||||
auto obj = sels[0].getObject();
|
||||
if(!obj || !obj->isAttachedToDocument())
|
||||
return false;
|
||||
return dynamic_cast<ViewProviderDocumentObject*>(
|
||||
return freecad_cast<ViewProviderDocumentObject*>(
|
||||
Application::Instance->getViewProvider(obj)) != nullptr;
|
||||
}
|
||||
|
||||
@@ -3123,7 +3123,7 @@ void StdCmdTreeSelectAllInstances::activated(int iMsg)
|
||||
auto obj = sels[0].getObject();
|
||||
if(!obj || !obj->isAttachedToDocument())
|
||||
return;
|
||||
auto vpd = dynamic_cast<ViewProviderDocumentObject*>(
|
||||
auto vpd = freecad_cast<ViewProviderDocumentObject*>(
|
||||
Application::Instance->getViewProvider(obj));
|
||||
if(!vpd)
|
||||
return;
|
||||
|
||||
@@ -487,8 +487,8 @@ void DlgExpressionInput::acceptWithVarSet()
|
||||
// The value of the property is going to be the value that was originally
|
||||
// meant to be the value for the property that this dialog is targeting.
|
||||
Expression* exprSimplfied = expression->simplify();
|
||||
auto ne = dynamic_cast<NumberExpression*>(exprSimplfied);
|
||||
auto se = dynamic_cast<StringExpression*>(exprSimplfied);
|
||||
auto ne = freecad_cast<NumberExpression*>(exprSimplfied);
|
||||
auto se = freecad_cast<StringExpression*>(exprSimplfied);
|
||||
if (ne) {
|
||||
// the value is a number: directly assign it to the property instead of
|
||||
// making it an expression in the variable set
|
||||
|
||||
@@ -151,7 +151,7 @@ struct DocumentP
|
||||
|
||||
static ViewProviderDocumentObject* throwIfCastFails(ViewProvider* p)
|
||||
{
|
||||
if (auto vp = dynamic_cast<ViewProviderDocumentObject*>(p)) {
|
||||
if (auto vp = freecad_cast<ViewProviderDocumentObject*>(p)) {
|
||||
return vp;
|
||||
}
|
||||
|
||||
@@ -223,7 +223,7 @@ struct DocumentP
|
||||
{
|
||||
auto svp = vp;
|
||||
if (sobj != obj) {
|
||||
svp = dynamic_cast<ViewProviderDocumentObject*>(
|
||||
svp = freecad_cast<ViewProviderDocumentObject*>(
|
||||
Application::Instance->getViewProvider(sobj));
|
||||
if (!svp) {
|
||||
std::stringstream str;
|
||||
@@ -310,7 +310,7 @@ struct DocumentP
|
||||
|
||||
void signalEditMode()
|
||||
{
|
||||
if (auto vpd = dynamic_cast<ViewProviderDocumentObject*>(_editViewProvider)) {
|
||||
if (auto vpd = freecad_cast<ViewProviderDocumentObject*>(_editViewProvider)) {
|
||||
vpd->getDocument()->signalInEdit(*vpd);
|
||||
}
|
||||
}
|
||||
@@ -404,7 +404,7 @@ private:
|
||||
const char* subname)
|
||||
{
|
||||
FC_LOG("deduced editing reference " << parentObj->getFullName() << '.' << subname);
|
||||
auto vp = dynamic_cast<ViewProviderDocumentObject*>(
|
||||
auto vp = freecad_cast<ViewProviderDocumentObject*>(
|
||||
Application::Instance->getViewProvider(parentObj));
|
||||
if (!vp || !vp->getDocument()) {
|
||||
throw Base::RuntimeError("invalid view provider for parent object");
|
||||
@@ -611,7 +611,7 @@ View3DInventor* Document::openEditingView3D(const ViewProviderDocumentObject* vp
|
||||
|
||||
View3DInventor* Document::openEditingView3D(const App::DocumentObject* obj)
|
||||
{
|
||||
if (auto vp = dynamic_cast<ViewProviderDocumentObject*>(
|
||||
if (auto vp = freecad_cast<ViewProviderDocumentObject*>(
|
||||
Application::Instance->getViewProvider(obj))) {
|
||||
return openEditingView3D(vp);
|
||||
}
|
||||
@@ -1022,8 +1022,8 @@ void Document::slotDeletedObject(const App::DocumentObject& Obj)
|
||||
void Document::beforeDelete() {
|
||||
auto editDoc = Application::Instance->editDocument();
|
||||
if(editDoc) {
|
||||
auto vp = dynamic_cast<ViewProviderDocumentObject*>(editDoc->d->_editViewProvider);
|
||||
auto vpp = dynamic_cast<ViewProviderDocumentObject*>(editDoc->d->_editViewProviderParent);
|
||||
auto vp = freecad_cast<ViewProviderDocumentObject*>(editDoc->d->_editViewProvider);
|
||||
auto vpp = freecad_cast<ViewProviderDocumentObject*>(editDoc->d->_editViewProviderParent);
|
||||
if(editDoc == this ||
|
||||
(vp && vp->getDocument()==this) ||
|
||||
(vpp && vpp->getDocument()==this))
|
||||
@@ -1173,7 +1173,7 @@ void Document::slotSkipRecompute(const App::Document& doc, const std::vector<App
|
||||
App::DocumentObject *obj = nullptr;
|
||||
auto editDoc = Application::Instance->editDocument();
|
||||
if(editDoc) {
|
||||
auto vp = dynamic_cast<ViewProviderDocumentObject*>(editDoc->getInEdit());
|
||||
auto vp = freecad_cast<ViewProviderDocumentObject*>(editDoc->getInEdit());
|
||||
if(vp)
|
||||
obj = vp->getObject();
|
||||
}
|
||||
@@ -1690,7 +1690,7 @@ void Document::RestoreDocFile(Base::Reader &reader)
|
||||
treeRank = int(localreader->getAttributeAsInteger("treeRank"));
|
||||
}
|
||||
|
||||
auto pObj = dynamic_cast<ViewProviderDocumentObject*>(getViewProviderByName(name.c_str()));
|
||||
auto pObj = freecad_cast<ViewProviderDocumentObject*>(getViewProviderByName(name.c_str()));
|
||||
// check if this feature has been registered
|
||||
if (pObj) {
|
||||
pObj->Restore(*localreader);
|
||||
@@ -1742,7 +1742,7 @@ void Document::slotStartRestoreDocument(const App::Document& doc)
|
||||
}
|
||||
|
||||
void Document::slotFinishRestoreObject(const App::DocumentObject &obj) {
|
||||
auto vpd = dynamic_cast<ViewProviderDocumentObject*>(getViewProvider(&obj));
|
||||
auto vpd = freecad_cast<ViewProviderDocumentObject*>(getViewProvider(&obj));
|
||||
if(vpd) {
|
||||
vpd->setStatus(Gui::isRestoring,false);
|
||||
vpd->finishRestoring();
|
||||
@@ -1961,7 +1961,7 @@ void Document::slotFinishImportObjects(const std::vector<App::DocumentObject*> &
|
||||
// auto vp = getViewProvider(obj);
|
||||
// if(!vp) continue;
|
||||
// vp->setStatus(Gui::isRestoring,false);
|
||||
// auto vpd = dynamic_cast<ViewProviderDocumentObject*>(vp);
|
||||
// auto vpd = freecad_cast<ViewProviderDocumentObject*>(vp);
|
||||
// if(vpd) vpd->finishRestoring();
|
||||
// }
|
||||
}
|
||||
@@ -2422,7 +2422,7 @@ MDIView *Document::setActiveView(const ViewProviderDocumentObject* vp, Base::Typ
|
||||
else {
|
||||
auto linked = obj->getLinkedObject(true);
|
||||
if (linked != obj) {
|
||||
auto vpLinked = dynamic_cast<ViewProviderDocumentObject*>(
|
||||
auto vpLinked = freecad_cast<ViewProviderDocumentObject*>(
|
||||
Application::Instance->getViewProvider(linked));
|
||||
if (vpLinked) {
|
||||
view = vpLinked->getMDIView();
|
||||
|
||||
@@ -199,7 +199,7 @@ ViewProviderDocumentObject* ViewProviderT::getViewProvider() const
|
||||
ViewProviderDocumentObject* obj = nullptr;
|
||||
Document* doc = getDocument();
|
||||
if (doc) {
|
||||
obj = dynamic_cast<ViewProviderDocumentObject*>(doc->getViewProviderByName(object.c_str()));
|
||||
obj = freecad_cast<ViewProviderDocumentObject*>(doc->getViewProviderByName(object.c_str()));
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
@@ -74,12 +74,12 @@ public:
|
||||
const App::DocumentObject* getObject() const;
|
||||
/// returns the selected DocumentObject or NULL if the object is already deleted
|
||||
template <class T>
|
||||
const T* getObject() const { return dynamic_cast<T*>(getObject()); };
|
||||
const T* getObject() const { return freecad_cast<T*>(getObject()); };
|
||||
/// returns the selected DocumentObject or NULL if the object is already deleted
|
||||
App::DocumentObject *getObject();
|
||||
/// returns the selected DocumentObject if it is of T type or null otherwise
|
||||
template <class T>
|
||||
T* getObject() { return dynamic_cast<T*>(getObject()); }
|
||||
T* getObject() { return freecad_cast<T*>(getObject()); }
|
||||
|
||||
/// check the selected object is a special type or derived of
|
||||
bool isObjectTypeOf(const Base::Type& typeId) const;
|
||||
|
||||
@@ -1582,7 +1582,7 @@ void TreeWidget::selectAllLinks(App::DocumentObject* obj) {
|
||||
TREE_ERR("invalid linked object");
|
||||
continue;
|
||||
}
|
||||
auto vp = dynamic_cast<ViewProviderDocumentObject*>(
|
||||
auto vp = freecad_cast<ViewProviderDocumentObject*>(
|
||||
Application::Instance->getViewProvider(link));
|
||||
if (!vp) {
|
||||
TREE_ERR("invalid view provider of the linked object");
|
||||
@@ -2198,7 +2198,7 @@ bool TreeWidget::dropInDocument(QDropEvent* event, TargetItemInfo& targetInfo,
|
||||
auto doc = App::GetApplication().getDocument(info.doc.c_str());
|
||||
if (!doc) continue;
|
||||
auto obj = doc->getObject(info.obj.c_str());
|
||||
auto vpc = dynamic_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(obj));
|
||||
auto vpc = freecad_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(obj));
|
||||
if (!vpc) {
|
||||
FC_WARN("Cannot find dragging object " << info.obj);
|
||||
continue;
|
||||
@@ -2247,7 +2247,7 @@ bool TreeWidget::dropInDocument(QDropEvent* event, TargetItemInfo& targetInfo,
|
||||
continue;
|
||||
}
|
||||
auto parent = parentDoc->getObject(info.parent.c_str());
|
||||
auto vpp = dynamic_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(parent));
|
||||
auto vpp = freecad_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(parent));
|
||||
if (!vpp) {
|
||||
FC_WARN("Cannot find dragging object's parent " << info.parent);
|
||||
continue;
|
||||
@@ -2496,7 +2496,7 @@ bool TreeWidget::dropInObject(QDropEvent* event, TargetItemInfo& targetInfo,
|
||||
continue;
|
||||
}
|
||||
auto obj = doc->getObject(info.obj.c_str());
|
||||
auto vpc = dynamic_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(obj));
|
||||
auto vpc = freecad_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(obj));
|
||||
if (!vpc) {
|
||||
FC_WARN("Cannot find dragging object " << info.obj);
|
||||
continue;
|
||||
@@ -2507,7 +2507,7 @@ bool TreeWidget::dropInObject(QDropEvent* event, TargetItemInfo& targetInfo,
|
||||
auto parentDoc = App::GetApplication().getDocument(info.parentDoc.c_str());
|
||||
if (parentDoc) {
|
||||
auto parent = parentDoc->getObject(info.parent.c_str());
|
||||
vpp = dynamic_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(parent));
|
||||
vpp = freecad_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(parent));
|
||||
}
|
||||
if (!vpp) {
|
||||
FC_WARN("Cannot find dragging object's parent " << info.parent);
|
||||
@@ -2819,7 +2819,7 @@ void TreeWidget::sortDroppedObjects(TargetItemInfo& targetInfo, std::vector<App:
|
||||
|
||||
// Then we set the tree rank
|
||||
for (size_t i = 0; i < sortedObjList.size(); ++i) {
|
||||
auto vp = dynamic_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(sortedObjList[i]));
|
||||
auto vp = freecad_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(sortedObjList[i]));
|
||||
vp->setTreeRank(i);
|
||||
}
|
||||
|
||||
@@ -3871,7 +3871,7 @@ void DocumentItem::slotInEdit(const Gui::ViewProviderDocumentObject& v)
|
||||
std::string subname;
|
||||
auto vp = doc->getInEdit(&parentVp, &subname);
|
||||
if (!parentVp)
|
||||
parentVp = dynamic_cast<ViewProviderDocumentObject*>(vp);
|
||||
parentVp = freecad_cast<ViewProviderDocumentObject*>(vp);
|
||||
if (parentVp)
|
||||
getTree()->editingItem = findItemByObject(true, parentVp->getObject(), subname.c_str());
|
||||
}
|
||||
@@ -4260,7 +4260,7 @@ int DocumentItem::findRootIndex(App::DocumentObject* childObj) {
|
||||
return vp->getTreeRank();
|
||||
};
|
||||
|
||||
auto vpc = dynamic_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(childObj));
|
||||
auto vpc = freecad_cast<ViewProviderDocumentObject*>(Application::Instance->getViewProvider(childObj));
|
||||
int childTreeRank = getTreeRank(vpc);
|
||||
|
||||
// find the last item
|
||||
|
||||
@@ -158,7 +158,7 @@ void View3DInventorSelection::checkGroupOnTop(const SelectionChanges &Reason)
|
||||
|
||||
if(objs.find(key.c_str())!=objs.end())
|
||||
return;
|
||||
auto vp = dynamic_cast<ViewProviderDocumentObject*>(
|
||||
auto vp = freecad_cast<ViewProviderDocumentObject*>(
|
||||
Application::Instance->getViewProvider(obj));
|
||||
if(!vp || !vp->isSelectable() || !vp->isShow())
|
||||
return;
|
||||
@@ -168,7 +168,7 @@ void View3DInventorSelection::checkGroupOnTop(const SelectionChanges &Reason)
|
||||
if(!sobj || !sobj->isAttachedToDocument())
|
||||
return;
|
||||
if(sobj!=obj) {
|
||||
svp = dynamic_cast<ViewProviderDocumentObject*>(
|
||||
svp = freecad_cast<ViewProviderDocumentObject*>(
|
||||
Application::Instance->getViewProvider(sobj));
|
||||
if(!svp || !svp->isSelectable())
|
||||
return;
|
||||
@@ -220,7 +220,7 @@ void View3DInventorSelection::checkGroupOnTop(const SelectionChanges &Reason)
|
||||
break;
|
||||
}
|
||||
|
||||
grpVp = dynamic_cast<ViewProviderDocumentObject*>(
|
||||
grpVp = freecad_cast<ViewProviderDocumentObject*>(
|
||||
Application::Instance->getViewProvider(grp));
|
||||
if (!grpVp) {
|
||||
break;
|
||||
|
||||
@@ -94,7 +94,7 @@ public:
|
||||
App::DocumentObject *getObject() const {return pcObject;}
|
||||
/// Get the object of this ViewProvider object as specified type
|
||||
template <class T>
|
||||
T *getObject() const { return dynamic_cast<T*>(pcObject); }
|
||||
T *getObject() const { return freecad_cast<T*>(pcObject); }
|
||||
/// Asks the view provider if the given object can be deleted.
|
||||
bool canDelete(App::DocumentObject* obj) const override;
|
||||
/// Ask the view provider if it accepts object deletions while in edit
|
||||
|
||||
@@ -46,7 +46,7 @@ void WorkbenchFactoryInst::destruct ()
|
||||
Workbench* WorkbenchFactoryInst::createWorkbench ( const char* sName ) const
|
||||
{
|
||||
auto obj = (Workbench*)Produce( sName );
|
||||
auto wb = dynamic_cast<Workbench*>(obj);
|
||||
auto wb = freecad_cast<Workbench*>(obj);
|
||||
if (!wb) {
|
||||
delete obj; // delete the unknown object as no workbench object
|
||||
return nullptr;
|
||||
|
||||
Reference in New Issue
Block a user