Gui: Use getObject<T>() helpers in classes

This commit is generated using regex based find and replace:

```
s/[\w:]+_cast\s*<([^>]+)\*>\s*\(\s*getObject\(\s*\)\)/getObject<$1>/
s/[\w:]+_cast\s*<([^>]+)\*>\s*\(\s*([^)]*)\s*->\s*getObject\(\s*\)\)/$2->getObject<$1>()/
```

To regenerate if needed.
This commit is contained in:
Kacper Donat
2024-10-27 20:26:31 +01:00
parent 44f3b37200
commit 954b729b56
131 changed files with 535 additions and 628 deletions

View File

@@ -74,7 +74,7 @@ TaskBooleanParameters::TaskBooleanParameters(ViewProviderBoolean* BooleanView, Q
this->groupLayout()->addWidget(proxy);
PartDesign::Boolean* pcBoolean = static_cast<PartDesign::Boolean*>(BooleanView->getObject());
PartDesign::Boolean* pcBoolean = BooleanView->getObject<PartDesign::Boolean>();
std::vector<App::DocumentObject*> bodies = pcBoolean->Group.getValues();
for (auto body : bodies) {
QListWidgetItem* item = new QListWidgetItem(ui->listWidgetBodies);
@@ -114,7 +114,7 @@ void TaskBooleanParameters::onSelectionChanged(const Gui::SelectionChanges& msg)
// get the selected object
PartDesign::Boolean* pcBoolean =
static_cast<PartDesign::Boolean*>(BooleanView->getObject());
BooleanView->getObject<PartDesign::Boolean>();
std::string body(msg.pObjectName);
if (body.empty()) {
return;
@@ -225,7 +225,7 @@ void TaskBooleanParameters::onButtonBodyAdd(bool checked)
{
if (checked) {
PartDesign::Boolean* pcBoolean =
static_cast<PartDesign::Boolean*>(BooleanView->getObject());
BooleanView->getObject<PartDesign::Boolean>();
Gui::Document* doc = BooleanView->getDocument();
BooleanView->hide();
if (pcBoolean->Group.getValues().empty() && pcBoolean->BaseFeature.getValue()) {
@@ -256,7 +256,7 @@ void TaskBooleanParameters::onButtonBodyRemove(bool checked)
void TaskBooleanParameters::onTypeChanged(int index)
{
PartDesign::Boolean* pcBoolean = static_cast<PartDesign::Boolean*>(BooleanView->getObject());
PartDesign::Boolean* pcBoolean = BooleanView->getObject<PartDesign::Boolean>();
switch (index) {
case 0:
@@ -292,7 +292,7 @@ int TaskBooleanParameters::getType() const
void TaskBooleanParameters::onBodyDeleted()
{
PartDesign::Boolean* pcBoolean = static_cast<PartDesign::Boolean*>(BooleanView->getObject());
PartDesign::Boolean* pcBoolean = BooleanView->getObject<PartDesign::Boolean>();
std::vector<App::DocumentObject*> bodies = pcBoolean->Group.getValues();
int index = ui->listWidgetBodies->currentRow();
if (index < 0 && (size_t)index > bodies.size()) {
@@ -420,7 +420,7 @@ bool TaskDlgBooleanParameters::accept()
bool TaskDlgBooleanParameters::reject()
{
// Show the bodies again
PartDesign::Boolean* obj = static_cast<PartDesign::Boolean*>(BooleanView->getObject());
PartDesign::Boolean* obj = BooleanView->getObject<PartDesign::Boolean>();
Gui::Document* doc = Gui::Application::Instance->activeDocument();
if (doc) {
if (obj->BaseFeature.getValue()) {

View File

@@ -56,7 +56,7 @@ TaskChamferParameters::TaskChamferParameters(ViewProviderDressUp* DressUpView, Q
ui->setupUi(proxy);
this->groupLayout()->addWidget(proxy);
PartDesign::Chamfer* pcChamfer = static_cast<PartDesign::Chamfer*>(DressUpView->getObject());
PartDesign::Chamfer* pcChamfer = DressUpView->getObject<PartDesign::Chamfer>();
setUpUI(pcChamfer);

View File

@@ -90,7 +90,7 @@ bool TaskDlgDatumParameters::reject() {
bool TaskDlgDatumParameters::accept() {
Part::Datum* pcDatum = static_cast<Part::Datum*>(ViewProvider->getObject());
Part::Datum* pcDatum = ViewProvider->getObject<Part::Datum>();
auto pcActiveBody = PartDesignGui::getBodyFor(pcDatum, false);
auto pcActivePart = PartDesignGui::getPartFor(pcActiveBody, false);
std::vector<App::DocumentObject*> copies;

View File

@@ -58,7 +58,7 @@ TaskDraftParameters::TaskDraftParameters(ViewProviderDressUp* DressUpView, QWidg
this->groupLayout()->addWidget(proxy);
PartDesign::Draft* pcDraft = static_cast<PartDesign::Draft*>(DressUpView->getObject());
PartDesign::Draft* pcDraft = DressUpView->getObject<PartDesign::Draft>();
double a = pcDraft->Angle.getValue();
ui->draftAngle->setMinimum(pcDraft->Angle.getMinimum());

View File

@@ -114,7 +114,7 @@ void TaskDressUpParameters::referenceSelected(const Gui::SelectionChanges& msg,
Gui::Selection().clearSelection();
PartDesign::DressUp* pcDressUp = static_cast<PartDesign::DressUp*>(DressUpView->getObject());
PartDesign::DressUp* pcDressUp = DressUpView->getObject<PartDesign::DressUp>();
App::DocumentObject* base = this->getBase();
// TODO: Must we make a copy here instead of assigning to const char* ?
@@ -146,7 +146,7 @@ void TaskDressUpParameters::addAllEdges(QListWidget* widget)
return;
}
PartDesign::DressUp* pcDressUp = static_cast<PartDesign::DressUp*>(DressUpView->getObject());
PartDesign::DressUp* pcDressUp = DressUpView->getObject<PartDesign::DressUp>();
App::DocumentObject* base = pcDressUp->Base.getValue();
if (!base) {
return;
@@ -181,7 +181,7 @@ void TaskDressUpParameters::deleteRef(QListWidget* widget)
// get the list of items to be deleted
QList<QListWidgetItem*> selectedList = widget->selectedItems();
PartDesign::DressUp* pcDressUp = static_cast<PartDesign::DressUp*>(DressUpView->getObject());
PartDesign::DressUp* pcDressUp = DressUpView->getObject<PartDesign::DressUp>();
std::vector<std::string> refs = pcDressUp->Base.getSubValues();
// delete the selection backwards to assure the list index keeps valid for the deletion
@@ -354,7 +354,7 @@ void TaskDressUpParameters::keyPressEvent(QKeyEvent* ke)
const std::vector<std::string> TaskDressUpParameters::getReferences() const
{
PartDesign::DressUp* pcDressUp = static_cast<PartDesign::DressUp*>(DressUpView->getObject());
PartDesign::DressUp* pcDressUp = DressUpView->getObject<PartDesign::DressUp>();
std::vector<std::string> result = pcDressUp->Base.getSubValues();
return result;
}
@@ -412,7 +412,7 @@ ViewProviderDressUp* TaskDressUpParameters::getDressUpView() const
Part::Feature* TaskDressUpParameters::getBase() const
{
if (ViewProviderDressUp* vp = getDressUpView()) {
auto dressUp = dynamic_cast<PartDesign::DressUp*>(vp->getObject());
auto dressUp = vp->getObject<PartDesign::DressUp>();
// Unlikely but this may throw an exception in case we are started to edit an object which
// base feature was deleted. This exception will be likely unhandled inside the dialog and
// pass upper. But an error message inside the report view is better than a SEGFAULT.
@@ -464,7 +464,7 @@ TaskDlgDressUpParameters::TaskDlgDressUpParameters(ViewProviderDressUp *DressUpV
, parameter(nullptr)
{
assert(DressUpView);
auto pcDressUp = dynamic_cast<PartDesign::DressUp*>(DressUpView->getObject());
auto pcDressUp = DressUpView->getObject<PartDesign::DressUp>();
auto base = pcDressUp->Base.getValue();
std::vector<std::string> newSubList;
bool changed = false;

View File

@@ -95,8 +95,9 @@ protected:
template<typename T = App::DocumentObject> T* getObject() const
{
static_assert(std::is_base_of<App::DocumentObject, T>::value, "Wrong template argument");
if (!DressUpView.expired()) {
return dynamic_cast<T*>(DressUpView->getObject());
return DressUpView->getObject<T>();
}
return nullptr;

View File

@@ -75,8 +75,9 @@ protected:
template<typename T = App::DocumentObject> T* getObject() const
{
static_assert(std::is_base_of<App::DocumentObject, T>::value, "Wrong template argument");
if (vp) {
return dynamic_cast<T*>(vp->getObject());
return vp->getObject<T>();
}
return nullptr;
@@ -134,7 +135,7 @@ public:
{
static_assert(std::is_base_of<App::DocumentObject, T>::value, "Wrong template argument");
if (vp) {
return dynamic_cast<T*>(vp->getObject());
return vp->getObject<T>();
}
return nullptr;

View File

@@ -54,7 +54,7 @@ TaskFilletParameters::TaskFilletParameters(ViewProviderDressUp* DressUpView, QWi
ui->setupUi(proxy);
this->groupLayout()->addWidget(proxy);
PartDesign::Fillet* pcFillet = static_cast<PartDesign::Fillet*>(DressUpView->getObject());
PartDesign::Fillet* pcFillet = DressUpView->getObject<PartDesign::Fillet>();
bool useAllEdges = pcFillet->UseAllEdges.getValue();
ui->checkBoxUseAllEdges->setChecked(useAllEdges);
ui->buttonRefSel->setEnabled(!useAllEdges);

View File

@@ -74,7 +74,7 @@ void TaskLinearPatternParameters::setupParameterUI(QWidget* widget)
QMetaObject::connectSlotsByName(this);
// Get the feature data
auto pcLinearPattern = static_cast<PartDesign::LinearPattern*>(getObject());
auto pcLinearPattern = getObject<PartDesign::LinearPattern>();
ui->spinLength->bind(pcLinearPattern->Length);
ui->spinOffset->bind(pcLinearPattern->Offset);
@@ -166,7 +166,7 @@ void TaskLinearPatternParameters::updateUI()
}
blockUpdate = true;
auto pcLinearPattern = static_cast<PartDesign::LinearPattern*>(getObject());
auto pcLinearPattern = getObject<PartDesign::LinearPattern>();
auto mode = static_cast<PartDesign::LinearPatternMode>(pcLinearPattern->Mode.getValue());
bool reverse = pcLinearPattern->Reversed.getValue();
@@ -195,7 +195,7 @@ void TaskLinearPatternParameters::updateUI()
void TaskLinearPatternParameters::adaptVisibilityToMode()
{
auto pcLinearPattern = static_cast<PartDesign::LinearPattern*>(getObject());
auto pcLinearPattern = getObject<PartDesign::LinearPattern>();
auto mode = static_cast<PartDesign::LinearPatternMode>(pcLinearPattern->Mode.getValue());
ui->lengthWrapper->setVisible(mode == PartDesign::LinearPatternMode::length);
@@ -222,7 +222,7 @@ void TaskLinearPatternParameters::onSelectionChanged(const Gui::SelectionChanges
exitSelectionMode();
}
else {
auto pcLinearPattern = static_cast<PartDesign::LinearPattern*>(getObject());
auto pcLinearPattern = getObject<PartDesign::LinearPattern>();
std::vector<std::string> directions;
App::DocumentObject* selObj = nullptr;
@@ -248,7 +248,7 @@ void TaskLinearPatternParameters::onCheckReverse(const bool on)
if (blockUpdate) {
return;
}
auto pcLinearPattern = static_cast<PartDesign::LinearPattern*>(getObject());
auto pcLinearPattern = getObject<PartDesign::LinearPattern>();
pcLinearPattern->Reversed.setValue(on);
exitSelectionMode();
@@ -260,7 +260,7 @@ void TaskLinearPatternParameters::onModeChanged(const int mode)
if (blockUpdate) {
return;
}
auto pcLinearPattern = static_cast<PartDesign::LinearPattern*>(getObject());
auto pcLinearPattern = getObject<PartDesign::LinearPattern>();
pcLinearPattern->Mode.setValue(mode);
adaptVisibilityToMode();
@@ -274,7 +274,7 @@ void TaskLinearPatternParameters::onLength(const double length)
if (blockUpdate) {
return;
}
auto pcLinearPattern = static_cast<PartDesign::LinearPattern*>(getObject());
auto pcLinearPattern = getObject<PartDesign::LinearPattern>();
pcLinearPattern->Length.setValue(length);
exitSelectionMode();
@@ -286,7 +286,7 @@ void TaskLinearPatternParameters::onOffset(const double offset)
if (blockUpdate) {
return;
}
auto pcLinearPattern = static_cast<PartDesign::LinearPattern*>(getObject());
auto pcLinearPattern = getObject<PartDesign::LinearPattern>();
pcLinearPattern->Offset.setValue(offset);
exitSelectionMode();
@@ -298,7 +298,7 @@ void TaskLinearPatternParameters::onOccurrences(const uint number)
if (blockUpdate) {
return;
}
auto pcLinearPattern = static_cast<PartDesign::LinearPattern*>(getObject());
auto pcLinearPattern = getObject<PartDesign::LinearPattern>();
pcLinearPattern->Occurrences.setValue(number);
exitSelectionMode();
@@ -310,7 +310,7 @@ void TaskLinearPatternParameters::onDirectionChanged(int /*num*/)
if (blockUpdate) {
return;
}
auto pcLinearPattern = static_cast<PartDesign::LinearPattern*>(getObject());
auto pcLinearPattern = getObject<PartDesign::LinearPattern>();
try {
if (!dirLinks.getCurrentLink().getValue()) {
// enter reference selection mode
@@ -338,7 +338,7 @@ void TaskLinearPatternParameters::onUpdateView(bool on)
blockUpdate = !on;
if (on) {
// Do the same like in TaskDlgLinearPatternParameters::accept() but without doCommand
auto pcLinearPattern = static_cast<PartDesign::LinearPattern*>(getObject());
auto pcLinearPattern = getObject<PartDesign::LinearPattern>();
std::vector<std::string> directions;
App::DocumentObject* obj = nullptr;

View File

@@ -99,7 +99,7 @@ TaskLoftParameters::TaskLoftParameters(ViewProviderLoft* LoftView, bool /*newObj
}
// add the profiles
PartDesign::Loft* loft = static_cast<PartDesign::Loft*>(LoftView->getObject());
PartDesign::Loft* loft = LoftView->getObject<PartDesign::Loft>();
App::DocumentObject* profile = loft->Profile.getValue();
if (profile) {
Gui::Application::Instance->showViewProvider(profile);

View File

@@ -114,7 +114,7 @@ void TaskMirroredParameters::updateUI()
}
blockUpdate = true;
auto pcMirrored = static_cast<PartDesign::Mirrored*>(getObject());
auto pcMirrored = getObject<PartDesign::Mirrored>();
if (planeLinks.setCurrentLink(pcMirrored->MirrorPlane) == -1) {
// failed to set current, because the link isn't in the list yet
@@ -135,7 +135,7 @@ void TaskMirroredParameters::onSelectionChanged(const Gui::SelectionChanges& msg
exitSelectionMode();
}
else {
auto pcMirrored = static_cast<PartDesign::Mirrored*>(getObject());
auto pcMirrored = getObject<PartDesign::Mirrored>();
std::vector<std::string> mirrorPlanes;
App::DocumentObject* selObj = nullptr;
@@ -161,7 +161,7 @@ void TaskMirroredParameters::onPlaneChanged(int /*num*/)
return;
}
setupTransaction();
auto pcMirrored = static_cast<PartDesign::Mirrored*>(getObject());
auto pcMirrored = getObject<PartDesign::Mirrored>();
try {
if (!planeLinks.getCurrentLink().getValue()) {
// enter reference selection mode
@@ -189,7 +189,7 @@ void TaskMirroredParameters::onUpdateView(bool on)
if (on) {
setupTransaction();
// Do the same like in TaskDlgMirroredParameters::accept() but without doCommand
auto pcMirrored = static_cast<PartDesign::Mirrored*>(getObject());
auto pcMirrored = getObject<PartDesign::Mirrored>();
std::vector<std::string> mirrorPlanes;
App::DocumentObject* obj = nullptr;

View File

@@ -124,7 +124,7 @@ void TaskMultiTransformParameters::setupParameterUI(QWidget* widget)
ui->buttonOK->hide();
// Get the transformFeatures data
auto pcMultiTransform = static_cast<PartDesign::MultiTransform*>(TransformedView->getObject());
auto pcMultiTransform = TransformedView->getObject<PartDesign::MultiTransform>();
std::vector<App::DocumentObject*> transformFeatures =
pcMultiTransform->Transformations.getValues();
@@ -190,7 +190,7 @@ void TaskMultiTransformParameters::onTransformDelete()
return; // Can't delete the hint...
}
int row = ui->listTransformFeatures->currentIndex().row();
auto pcMultiTransform = static_cast<PartDesign::MultiTransform*>(TransformedView->getObject());
auto pcMultiTransform = TransformedView->getObject<PartDesign::MultiTransform>();
std::vector<App::DocumentObject*> transformFeatures =
pcMultiTransform->Transformations.getValues();
@@ -222,7 +222,7 @@ void TaskMultiTransformParameters::onTransformEdit()
// without OK'ing first
ui->listTransformFeatures->currentItem()->setSelected(true);
int row = ui->listTransformFeatures->currentIndex().row();
auto pcMultiTransform = static_cast<PartDesign::MultiTransform*>(TransformedView->getObject());
auto pcMultiTransform = TransformedView->getObject<PartDesign::MultiTransform>();
std::vector<App::DocumentObject*> transformFeatures =
pcMultiTransform->Transformations.getValues();
@@ -410,7 +410,7 @@ void TaskMultiTransformParameters::finishAdd(std::string& newFeatName)
// getOriginals().front()->getNameInDocument().c_str());
setupTransaction();
auto pcMultiTransform = static_cast<PartDesign::MultiTransform*>(TransformedView->getObject());
auto pcMultiTransform = TransformedView->getObject<PartDesign::MultiTransform>();
if (editHint) {
// Remove hint, first feature is being added
ui->listTransformFeatures->model()->removeRow(0);
@@ -459,7 +459,7 @@ void TaskMultiTransformParameters::moveTransformFeature(const int increment)
{
setupTransaction();
int row = ui->listTransformFeatures->currentIndex().row();
auto pcMultiTransform = static_cast<PartDesign::MultiTransform*>(TransformedView->getObject());
auto pcMultiTransform = TransformedView->getObject<PartDesign::MultiTransform>();
std::vector<App::DocumentObject*> transformFeatures =
pcMultiTransform->Transformations.getValues();
@@ -521,7 +521,7 @@ void TaskMultiTransformParameters::onUpdateView(bool on)
void TaskMultiTransformParameters::apply()
{
auto pcMultiTransform = static_cast<PartDesign::MultiTransform*>(getObject());
auto pcMultiTransform = getObject<PartDesign::MultiTransform>();
std::vector<App::DocumentObject*> transformFeatures =
pcMultiTransform->Transformations.getValues();
std::stringstream str;

View File

@@ -102,7 +102,7 @@ TaskPipeParameters::TaskPipeParameters(ViewProviderPipe* PipeView, bool /*newObj
this->groupLayout()->addWidget(proxy);
PartDesign::Pipe* pipe = static_cast<PartDesign::Pipe*>(PipeView->getObject());
PartDesign::Pipe* pipe = PipeView->getObject<PartDesign::Pipe>();
Gui::Document* doc = PipeView->getDocument();
// make sure the user sees all important things and load the values
@@ -625,7 +625,7 @@ TaskPipeOrientation::TaskPipeOrientation(ViewProviderPipe* PipeView,
this->groupLayout()->addWidget(proxy);
PartDesign::Pipe* pipe = static_cast<PartDesign::Pipe*>(PipeView->getObject());
PartDesign::Pipe* pipe = PipeView->getObject<PartDesign::Pipe>();
// add initial values
if (pipe->AuxillerySpine.getValue()) {
@@ -923,7 +923,7 @@ TaskPipeScaling::TaskPipeScaling(ViewProviderPipe* PipeView, bool /*newObj*/, QW
this->groupLayout()->addWidget(proxy);
PartDesign::Pipe* pipe = static_cast<PartDesign::Pipe*>(PipeView->getObject());
PartDesign::Pipe* pipe = PipeView->getObject<PartDesign::Pipe>();
for (auto& subSet : pipe->Sections.getSubListValues()) {
Gui::Application::Instance->showViewProvider(subSet.first);
QString label = make2DLabel(subSet.first, subSet.second);

View File

@@ -81,7 +81,7 @@ void TaskPolarPatternParameters::setupParameterUI(QWidget* widget)
QMetaObject::connectSlotsByName(this);
// Get the feature data
auto pcPolarPattern = static_cast<PartDesign::PolarPattern*>(getObject());
auto pcPolarPattern = getObject<PartDesign::PolarPattern>();
ui->polarAngle->bind(pcPolarPattern->Angle);
ui->angleOffset->bind(pcPolarPattern->Offset);
@@ -168,7 +168,7 @@ void TaskPolarPatternParameters::updateUI()
}
blockUpdate = true;
auto pcPolarPattern = static_cast<PartDesign::PolarPattern*>(getObject());
auto pcPolarPattern = getObject<PartDesign::PolarPattern>();
auto mode = static_cast<PartDesign::PolarPatternMode>(pcPolarPattern->Mode.getValue());
bool reverse = pcPolarPattern->Reversed.getValue();
@@ -208,7 +208,7 @@ void TaskPolarPatternParameters::kickUpdateViewTimer() const
void TaskPolarPatternParameters::adaptVisibilityToMode()
{
auto pcLinearPattern = static_cast<PartDesign::PolarPattern*>(getObject());
auto pcLinearPattern = getObject<PartDesign::PolarPattern>();
auto mode = static_cast<PartDesign::PolarPatternMode>(pcLinearPattern->Mode.getValue());
ui->polarAngleWrapper->setVisible(mode == PartDesign::PolarPatternMode::angle);
@@ -222,7 +222,7 @@ void TaskPolarPatternParameters::onSelectionChanged(const Gui::SelectionChanges&
exitSelectionMode();
}
else {
auto pcPolarPattern = static_cast<PartDesign::PolarPattern*>(getObject());
auto pcPolarPattern = getObject<PartDesign::PolarPattern>();
std::vector<std::string> axes;
App::DocumentObject* selObj = nullptr;
@@ -247,7 +247,7 @@ void TaskPolarPatternParameters::onCheckReverse(const bool on)
if (blockUpdate) {
return;
}
auto pcPolarPattern = static_cast<PartDesign::PolarPattern*>(getObject());
auto pcPolarPattern = getObject<PartDesign::PolarPattern>();
pcPolarPattern->Reversed.setValue(on);
exitSelectionMode();
@@ -259,7 +259,7 @@ void TaskPolarPatternParameters::onModeChanged(const int mode)
if (blockUpdate) {
return;
}
auto pcPolarPattern = static_cast<PartDesign::PolarPattern*>(getObject());
auto pcPolarPattern = getObject<PartDesign::PolarPattern>();
pcPolarPattern->Mode.setValue(mode);
adaptVisibilityToMode();
@@ -273,7 +273,7 @@ void TaskPolarPatternParameters::onAngle(const double angle)
if (blockUpdate) {
return;
}
auto pcPolarPattern = static_cast<PartDesign::PolarPattern*>(getObject());
auto pcPolarPattern = getObject<PartDesign::PolarPattern>();
pcPolarPattern->Angle.setValue(angle);
exitSelectionMode();
@@ -285,7 +285,7 @@ void TaskPolarPatternParameters::onOffset(const double offset)
if (blockUpdate) {
return;
}
auto pcPolarPattern = static_cast<PartDesign::PolarPattern*>(getObject());
auto pcPolarPattern = getObject<PartDesign::PolarPattern>();
pcPolarPattern->Offset.setValue(offset);
exitSelectionMode();
@@ -297,7 +297,7 @@ void TaskPolarPatternParameters::onOccurrences(const uint n)
if (blockUpdate) {
return;
}
auto pcPolarPattern = static_cast<PartDesign::PolarPattern*>(getObject());
auto pcPolarPattern = getObject<PartDesign::PolarPattern>();
pcPolarPattern->Occurrences.setValue(n);
exitSelectionMode();
@@ -309,7 +309,7 @@ void TaskPolarPatternParameters::onAxisChanged(int /*num*/)
if (blockUpdate) {
return;
}
auto pcPolarPattern = static_cast<PartDesign::PolarPattern*>(getObject());
auto pcPolarPattern = getObject<PartDesign::PolarPattern>();
try {
if (!axesLinks.getCurrentLink().getValue()) {
@@ -337,7 +337,7 @@ void TaskPolarPatternParameters::onUpdateView(bool on)
blockUpdate = !on;
if (on) {
// Do the same like in TaskDlgPolarPatternParameters::accept() but without doCommand
auto pcPolarPattern = static_cast<PartDesign::PolarPattern*>(getObject());
auto pcPolarPattern = getObject<PartDesign::PolarPattern>();
std::vector<std::string> axes;
App::DocumentObject* obj = nullptr;

View File

@@ -105,7 +105,7 @@ private:
{
static_assert(std::is_base_of<App::DocumentObject, T>::value, "Wrong template argument");
if (vp) {
return dynamic_cast<T*>(vp->getObject());
return vp->getObject<T>();
}
return nullptr;

View File

@@ -75,7 +75,7 @@ void TaskScaledParameters::setupParameterUI(QWidget* widget)
&TaskScaledParameters::onOccurrences);
// Get the feature data
auto pcScaled = static_cast<PartDesign::Scaled*>(getObject());
auto pcScaled = getObject<PartDesign::Scaled>();
ui->spinFactor->bind(pcScaled->Factor);
ui->spinOccurrences->setMaximum(INT_MAX);
@@ -99,7 +99,7 @@ void TaskScaledParameters::updateUI()
}
blockUpdate = true;
auto pcScaled = static_cast<PartDesign::Scaled*>(getObject());
auto pcScaled = getObject<PartDesign::Scaled>();
double factor = pcScaled->Factor.getValue();
unsigned occurrences = pcScaled->Occurrences.getValue();
@@ -115,7 +115,7 @@ void TaskScaledParameters::onFactor(const double factor)
if (blockUpdate) {
return;
}
auto pcScaled = static_cast<PartDesign::Scaled*>(getObject());
auto pcScaled = getObject<PartDesign::Scaled>();
pcScaled->Factor.setValue(factor);
recomputeFeature();
}
@@ -125,7 +125,7 @@ void TaskScaledParameters::onOccurrences(const uint number)
if (blockUpdate) {
return;
}
auto pcScaled = static_cast<PartDesign::Scaled*>(getObject());
auto pcScaled = getObject<PartDesign::Scaled>();
pcScaled->Occurrences.setValue(number);
recomputeFeature();
}
@@ -135,7 +135,7 @@ void TaskScaledParameters::onUpdateView(bool on)
blockUpdate = !on;
if (on) {
// Do the same like in TaskDlgScaledParameters::accept() but without doCommand
auto pcScaled = static_cast<PartDesign::Scaled*>(getObject());
auto pcScaled = getObject<PartDesign::Scaled>();
pcScaled->Factor.setValue(getFactor());
pcScaled->Occurrences.setValue(getOccurrences());
recomputeFeature();

View File

@@ -86,7 +86,7 @@ void TaskShapeBinder::updateUI()
App::GeoFeature* obj = nullptr;
std::vector<std::string> subs;
PartDesign::ShapeBinder::getFilteredReferences(&static_cast<PartDesign::ShapeBinder*>(vp->getObject())->Support, obj, subs);
PartDesign::ShapeBinder::getFilteredReferences(&vp->getObject<PartDesign::ShapeBinder>()->Support, obj, subs);
if (obj) {
ui->baseEdit->setText(QString::fromStdString(obj->Label.getStrValue()));
@@ -146,7 +146,7 @@ void TaskShapeBinder::setupContextMenu()
void TaskShapeBinder::supportChanged(const QString& text)
{
if (!vp.expired() && text.isEmpty()) {
PartDesign::ShapeBinder* binder = static_cast<PartDesign::ShapeBinder*>(vp->getObject());
PartDesign::ShapeBinder* binder = vp->getObject<PartDesign::ShapeBinder>();
binder->Support.setValue(nullptr, nullptr);
vp->highlightReferences(false);
vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
@@ -201,7 +201,7 @@ void TaskShapeBinder::deleteItem()
App::GeoFeature* obj = nullptr;
std::vector<std::string> subs;
PartDesign::ShapeBinder* binder = static_cast<PartDesign::ShapeBinder*>(vp->getObject());
PartDesign::ShapeBinder* binder = vp->getObject<PartDesign::ShapeBinder>();
PartDesign::ShapeBinder::getFilteredReferences(&binder->Support, obj, subs);
std::string subname = data.constData();
@@ -298,7 +298,7 @@ bool TaskShapeBinder::referenceSelected(const SelectionChanges& msg) const
App::GeoFeature* obj = nullptr;
std::vector<std::string> refs;
PartDesign::ShapeBinder::getFilteredReferences(&static_cast<PartDesign::ShapeBinder*>(vp->getObject())->Support, obj, refs);
PartDesign::ShapeBinder::getFilteredReferences(&vp->getObject<PartDesign::ShapeBinder>()->Support, obj, refs);
// get selected object
auto docObj = vp->getObject()->getDocument()->getObject(msg.pObjectName);
@@ -341,7 +341,7 @@ bool TaskShapeBinder::referenceSelected(const SelectionChanges& msg) const
obj = selectedObj;
}
static_cast<PartDesign::ShapeBinder*>(vp->getObject())->Support.setValue(obj, refs);
vp->getObject<PartDesign::ShapeBinder>()->Support.setValue(obj, refs);
return true;
}
@@ -368,7 +368,7 @@ void TaskShapeBinder::accept()
return;
std::string label = ui->baseEdit->text().toStdString();
PartDesign::ShapeBinder* binder = static_cast<PartDesign::ShapeBinder*>(vp->getObject());
PartDesign::ShapeBinder* binder = vp->getObject<PartDesign::ShapeBinder>();
if (!binder->Support.getValue() && !label.empty()) {
auto mode = selectionMode;
selectionMode = refObjAdd;

View File

@@ -123,7 +123,7 @@ void TaskTransformedParameters::setupUI()
&TaskTransformedParameters::onUpdateView);
// Get the feature data
auto pcTransformed = static_cast<PartDesign::Transformed*>(getObject());
auto pcTransformed = getObject<PartDesign::Transformed>();
using Mode = PartDesign::Transformed::Mode;
@@ -307,7 +307,7 @@ void TaskTransformedParameters::onModeChanged(int mode_id)
return;
}
auto pcTransformed = static_cast<PartDesign::Transformed*>(getObject());
auto pcTransformed = getObject<PartDesign::Transformed>();
pcTransformed->TransformMode.setValue(mode_id);
using Mode = PartDesign::Transformed::Mode;
@@ -500,7 +500,7 @@ PartDesign::Transformed* TaskTransformedParameters::getObject() const
return parentTask->getSubFeature();
}
if (TransformedView) {
return static_cast<PartDesign::Transformed*>(TransformedView->getObject());
return TransformedView->getObject<PartDesign::Transformed>();
}
return nullptr;
}

View File

@@ -214,7 +214,7 @@ QIcon ViewProvider::mergeColorfulOverlayIcons (const QIcon & orig) const
bool ViewProvider::onDelete(const std::vector<std::string> &)
{
PartDesign::Feature* feature = static_cast<PartDesign::Feature*>(getObject());
PartDesign::Feature* feature = getObject<PartDesign::Feature>();
App::DocumentObject* previousfeat = feature->BaseFeature.getValue();

View File

@@ -102,7 +102,7 @@ void ViewProviderAddSub::attach(App::DocumentObject* obj) {
void ViewProviderAddSub::updateAddSubShapeIndicator() {
TopoDS_Shape cShape(static_cast<PartDesign::FeatureAddSub*>(getObject())->AddSubShape.getValue());
TopoDS_Shape cShape(getObject<PartDesign::FeatureAddSub>()->AddSubShape.getValue());
if (cShape.IsNull()) {
previewCoords ->point .setNum(0);
previewNorm ->vector .setNum(0);
@@ -254,7 +254,7 @@ void ViewProviderAddSub::setPreviewDisplayMode(bool onoff) {
pcModeSwitch->whichChild.setValue(whichChild);
}
App::DocumentObject* obj = static_cast<PartDesign::Feature*>(getObject())->BaseFeature.getValue();
App::DocumentObject* obj = getObject<PartDesign::Feature>()->BaseFeature.getValue();
if (obj)
static_cast<PartDesignGui::ViewProvider*>(Gui::Application::Instance->getViewProvider(obj))->makeTemporaryVisible(onoff);
}

View File

@@ -45,7 +45,7 @@ bool ViewProviderBase::doubleClicked()
{
// If the Placement is mutable then open the transform panel.
// If the Placement can't be modified then just do nothing on double-click.
PartDesign::FeatureBase* base = static_cast<PartDesign::FeatureBase*>(getObject());
PartDesign::FeatureBase* base = getObject<PartDesign::FeatureBase>();
if (!base->Placement.testStatus(App::Property::Immutable) &&
!base->Placement.testStatus(App::Property::ReadOnly) &&
!base->Placement.testStatus(App::Property::Hidden)) {
@@ -68,7 +68,7 @@ bool ViewProviderBase::doubleClicked()
void ViewProviderBase::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)
{
// If the Placement is mutable then show the context-menu of the base class.
PartDesign::FeatureBase* base = static_cast<PartDesign::FeatureBase*>(getObject());
PartDesign::FeatureBase* base = getObject<PartDesign::FeatureBase>();
if (!base->Placement.testStatus(App::Property::Immutable) &&
!base->Placement.testStatus(App::Property::ReadOnly) &&
!base->Placement.testStatus(App::Property::Hidden)) {
@@ -78,7 +78,7 @@ void ViewProviderBase::setupContextMenu(QMenu* menu, QObject* receiver, const ch
bool ViewProviderBase::setEdit(int ModNum)
{
PartDesign::FeatureBase* base = static_cast<PartDesign::FeatureBase*>(getObject());
PartDesign::FeatureBase* base = getObject<PartDesign::FeatureBase>();
if (!base->Placement.testStatus(App::Property::Immutable) &&
!base->Placement.testStatus(App::Property::ReadOnly) &&
!base->Placement.testStatus(App::Property::Hidden)) {

View File

@@ -184,7 +184,7 @@ bool ViewProviderBody::doubleClicked()
//
// // Highlight active body and all its features
// //Base::Console().Error("ViewProviderBody::updateTree()\n");
// PartDesign::Body* body = static_cast<PartDesign::Body*>(getObject());
// PartDesign::Body* body = getObject<PartDesign::Body>();
// bool active = body->IsActive.getValue();
// //Base::Console().Error("Body is %s\n", active ? "active" : "inactive");
// ActiveGuiDoc->signalHighlightObject(*this, Gui::Blue, active);
@@ -209,7 +209,7 @@ bool ViewProviderBody::onDelete ( const std::vector<std::string> &) {
void ViewProviderBody::updateData(const App::Property* prop)
{
PartDesign::Body* body = static_cast<PartDesign::Body*>(getObject());
PartDesign::Body* body = getObject<PartDesign::Body>();
if (prop == &body->Group || prop == &body->BaseFeature) {
//ensure all model features are in visual body mode
@@ -237,7 +237,7 @@ void ViewProviderBody::updateData(const App::Property* prop)
void ViewProviderBody::onChanged(const App::Property* prop) {
if(prop == &DisplayModeBody) {
auto body = dynamic_cast<PartDesign::Body*>(getObject());
auto body = getObject<PartDesign::Body>();
if ( DisplayModeBody.getValue() == 0 ) {
//if we are in an override mode we need to make sure to come out, because
@@ -342,7 +342,7 @@ bool ViewProviderBody::canDropObjects() const
{
// if the BaseFeature property is marked as hidden or read-only then
// it's not allowed to modify it.
PartDesign::Body* body = static_cast<PartDesign::Body*>(getObject());
PartDesign::Body* body = getObject<PartDesign::Body>();
if (body->BaseFeature.testStatus(App::Property::Status::Hidden))
return false;
if (body->BaseFeature.testStatus(App::Property::Status::ReadOnly))
@@ -375,7 +375,7 @@ bool ViewProviderBody::canDropObject(App::DocumentObject* obj) const
void ViewProviderBody::dropObject(App::DocumentObject* obj)
{
PartDesign::Body* body = static_cast<PartDesign::Body*>(getObject());
PartDesign::Body* body = getObject<PartDesign::Body>();
if (obj->isDerivedFrom<Part::Part2DObject>()) {
body->addObject(obj);
}

View File

@@ -107,7 +107,7 @@ bool ViewProviderBoolean::setEdit(int ModNum)
bool ViewProviderBoolean::onDelete(const std::vector<std::string> &s)
{
PartDesign::Boolean* pcBoolean = static_cast<PartDesign::Boolean*>(getObject());
PartDesign::Boolean* pcBoolean = getObject<PartDesign::Boolean>();
// if abort command deleted the object the bodies are visible again
std::vector<App::DocumentObject*> bodies = pcBoolean->Group.getValues();

View File

@@ -289,7 +289,7 @@ bool ViewProviderDatum::doubleClicked()
Msg += this->pcObject->Label.getValue();
Gui::Command::openCommand(Msg.c_str());
Part::Datum* pcDatum = static_cast<Part::Datum*>(getObject());
Part::Datum* pcDatum = getObject<Part::Datum>();
PartDesign::Body* activeBody = activeView->getActiveObject<PartDesign::Body*>(PDBODYKEY);
auto datumBody = PartDesignGui::getBodyFor(pcDatum, false);

View File

@@ -72,7 +72,7 @@ void ViewProviderDatumLine::updateData(const App::Property* prop)
updateExtents ();
}
else if (strcmp(prop->getName(),"Length") == 0) {
PartDesign::Line* pcDatum = static_cast<PartDesign::Line*>(this->getObject());
PartDesign::Line* pcDatum = this->getObject<PartDesign::Line>();
if (pcDatum->ResizeMode.getValue() != 0)
setExtents(pcDatum->Length.getValue());
}
@@ -82,7 +82,7 @@ void ViewProviderDatumLine::updateData(const App::Property* prop)
void ViewProviderDatumLine::setExtents (Base::BoundBox3d bbox) {
PartDesign::Line* pcDatum = static_cast<PartDesign::Line*>(this->getObject());
PartDesign::Line* pcDatum = this->getObject<PartDesign::Line>();
// set manual size
if (pcDatum->ResizeMode.getValue() != 0) {
setExtents(pcDatum->Length.getValue());

View File

@@ -95,7 +95,7 @@ void ViewProviderDatumPlane::updateData(const App::Property* prop)
}
else if (strcmp(prop->getName(),"Length") == 0 ||
strcmp(prop->getName(),"Width") == 0) {
PartDesign::Plane* pcDatum = static_cast<PartDesign::Plane*>(this->getObject());
PartDesign::Plane* pcDatum = this->getObject<PartDesign::Plane>();
if (pcDatum->ResizeMode.getValue() != 0)
setExtents(pcDatum->Length.getValue(), pcDatum->Width.getValue());
}
@@ -105,7 +105,7 @@ void ViewProviderDatumPlane::updateData(const App::Property* prop)
void ViewProviderDatumPlane::setExtents (Base::BoundBox3d bbox) {
PartDesign::Plane* pcDatum = static_cast<PartDesign::Plane*>(this->getObject());
PartDesign::Plane* pcDatum = this->getObject<PartDesign::Plane>();
if (pcDatum->ResizeMode.getValue() != 0) {
setExtents(pcDatum->Length.getValue(), pcDatum->Width.getValue());
return;

View File

@@ -66,7 +66,7 @@ bool ViewProviderDressUp::setEdit(int ModNum) {
if (ModNum == ViewProvider::Default) {
// Here we should prevent edit of a Feature with missing base
// Otherwise it could call unhandled exception.
PartDesign::DressUp* dressUp = static_cast<PartDesign::DressUp*>(getObject());
PartDesign::DressUp* dressUp = getObject<PartDesign::DressUp>();
assert (dressUp);
if (dressUp->getBaseObject (/*silent =*/ true)) {
return ViewProvider::setEdit(ModNum);
@@ -86,7 +86,7 @@ bool ViewProviderDressUp::setEdit(int ModNum) {
void ViewProviderDressUp::highlightReferences(const bool on)
{
PartDesign::DressUp* pcDressUp = static_cast<PartDesign::DressUp*>(getObject());
PartDesign::DressUp* pcDressUp = getObject<PartDesign::DressUp>();
Part::Feature* base = pcDressUp->getBaseObject (/*silent =*/ true);
if (!base)
return;

View File

@@ -42,7 +42,7 @@ PROPERTY_SOURCE(PartDesignGui::ViewProviderExtrude, PartDesignGui::ViewProviderS
void PartDesignGui::ViewProviderExtrude::highlightShapeFaces(const std::vector<std::string>& faces)
{
auto extrude = static_cast<PartDesign::FeatureExtrude*>(getObject());
auto extrude = getObject<PartDesign::FeatureExtrude>();
auto base = static_cast<Part::Feature*>(extrude->UpToShape.getValue());
auto baseViewProvider =

View File

@@ -59,7 +59,7 @@ TaskDlgFeatureParameters *ViewProviderHelix::getEditDialog()
QIcon ViewProviderHelix::getIcon() const {
QString str = QString::fromLatin1("PartDesign_");
auto* prim = static_cast<PartDesign::Helix*>(getObject());
auto* prim = getObject<PartDesign::Helix>();
if(prim->getAddSubType() == PartDesign::FeatureAddSub::Additive)
str += QString::fromLatin1("Additive");
else
@@ -72,7 +72,7 @@ QIcon ViewProviderHelix::getIcon() const {
bool ViewProviderHelix::setEdit(int ModNum)
{
if (ModNum == ViewProvider::Default ) {
auto* prim = static_cast<PartDesign::Helix*>(getObject());
auto* prim = getObject<PartDesign::Helix>();
setPreviewDisplayMode(TaskHelixParameters::showPreview(prim));
}
return ViewProviderAddSub::setEdit(ModNum);
@@ -88,7 +88,7 @@ void ViewProviderHelix::unsetEdit(int ModNum)
std::vector<App::DocumentObject*> ViewProviderHelix::claimChildren() const {
std::vector<App::DocumentObject*> temp;
App::DocumentObject* sketch = static_cast<PartDesign::ProfileBased*>(getObject())->Profile.getValue();
App::DocumentObject* sketch = getObject<PartDesign::ProfileBased>()->Profile.getValue();
if (sketch && sketch->isDerivedFrom(Part::Part2DObject::getClassTypeId()))
temp.push_back(sketch);
@@ -96,7 +96,7 @@ std::vector<App::DocumentObject*> ViewProviderHelix::claimChildren() const {
}
bool ViewProviderHelix::onDelete(const std::vector<std::string> &s) {
PartDesign::ProfileBased* feature = static_cast<PartDesign::ProfileBased*>(getObject());
PartDesign::ProfileBased* feature = getObject<PartDesign::ProfileBased>();
// get the Sketch
Sketcher::SketchObject *pcSketch = nullptr;

View File

@@ -51,7 +51,7 @@ ViewProviderHole::~ViewProviderHole() = default;
std::vector<App::DocumentObject*> ViewProviderHole::claimChildren()const
{
std::vector<App::DocumentObject*> temp;
temp.push_back(static_cast<PartDesign::Hole*>(getObject())->Profile.getValue());
temp.push_back(getObject<PartDesign::Hole>()->Profile.getValue());
return temp;
}
@@ -107,7 +107,7 @@ bool ViewProviderHole::setEdit(int ModNum)
bool ViewProviderHole::onDelete(const std::vector<std::string> &s)
{
// get the Sketch
PartDesign::Hole* pcHole = static_cast<PartDesign::Hole*>(getObject());
PartDesign::Hole* pcHole = getObject<PartDesign::Hole>();
Sketcher::SketchObject *pcSketch = nullptr;
if (pcHole->Profile.getValue())
pcSketch = static_cast<Sketcher::SketchObject*>(pcHole->Profile.getValue());

View File

@@ -47,7 +47,7 @@ std::vector<App::DocumentObject*> ViewProviderLoft::claimChildren()const
{
std::vector<App::DocumentObject*> temp;
PartDesign::Loft* pcLoft = static_cast<PartDesign::Loft*>(getObject());
PartDesign::Loft* pcLoft = getObject<PartDesign::Loft>();
App::DocumentObject* sketch = pcLoft->getVerifiedSketch(true);
if (sketch)
@@ -88,7 +88,7 @@ void ViewProviderLoft::unsetEdit(int ModNum) {
bool ViewProviderLoft::onDelete(const std::vector<std::string> & /*s*/)
{/*
PartDesign::Loft* pcLoft = static_cast<PartDesign::Loft*>(getObject());
PartDesign::Loft* pcLoft = getObject<PartDesign::Loft>();
// get the Sketch
Sketcher::SketchObject *pcSketch = 0;
@@ -105,14 +105,14 @@ bool ViewProviderLoft::onDelete(const std::vector<std::string> & /*s*/)
void ViewProviderLoft::highlightProfile(bool on)
{
PartDesign::Loft* pcLoft = static_cast<PartDesign::Loft*>(getObject());
PartDesign::Loft* pcLoft = getObject<PartDesign::Loft>();
highlightReferences(dynamic_cast<Part::Feature*>(pcLoft->Profile.getValue()),
pcLoft->Profile.getSubValues(), on);
}
void ViewProviderLoft::highlightSection(bool on)
{
PartDesign::Loft* pcLoft = static_cast<PartDesign::Loft*>(getObject());
PartDesign::Loft* pcLoft = getObject<PartDesign::Loft>();
auto sections = pcLoft->Sections.getSubListValues();
for (auto& it : sections) {
// only take the entire shape when we have a sketch selected, but
@@ -171,7 +171,7 @@ void ViewProviderLoft::highlightReferences(Part::Feature* base, const std::vecto
QIcon ViewProviderLoft::getIcon() const {
QString str = QString::fromLatin1("PartDesign_");
auto* prim = static_cast<PartDesign::Loft*>(getObject());
auto* prim = getObject<PartDesign::Loft>();
if(prim->getAddSubType() == PartDesign::FeatureAddSub::Additive)
str += QString::fromLatin1("Additive");
else

View File

@@ -41,7 +41,7 @@ ViewProviderMainPart::~ViewProviderMainPart()
std::vector<App::DocumentObject*> ViewProviderMainPart::claimChildren(void)const
{
std::vector<App::DocumentObject*> temp;
temp.push_back(static_cast<PartDesign::MainPart*>(getObject())->Sketch.getValue());
temp.push_back(getObject<PartDesign::MainPart>()->Sketch.getValue());
return temp;
}

View File

@@ -51,7 +51,7 @@ void ViewProviderMultiTransform::setupContextMenu(QMenu* menu, QObject* receiver
std::vector<App::DocumentObject*> ViewProviderMultiTransform::claimChildren() const
{
PartDesign::MultiTransform* pcMultiTransform = static_cast<PartDesign::MultiTransform*>(getObject());
PartDesign::MultiTransform* pcMultiTransform = getObject<PartDesign::MultiTransform>();
if (!pcMultiTransform)
return {}; // TODO: Show error?
@@ -61,7 +61,7 @@ std::vector<App::DocumentObject*> ViewProviderMultiTransform::claimChildren() co
bool ViewProviderMultiTransform::onDelete(const std::vector<std::string> &svec) {
// Delete the transformation features
PartDesign::MultiTransform* pcMultiTransform = static_cast<PartDesign::MultiTransform*>(getObject());
PartDesign::MultiTransform* pcMultiTransform = getObject<PartDesign::MultiTransform>();
std::vector<App::DocumentObject*> transformFeatures = pcMultiTransform->Transformations.getValues();
// if the multitransform object was deleted the transformed features must be deleted, too

View File

@@ -47,7 +47,7 @@ std::vector<App::DocumentObject*> ViewProviderPipe::claimChildren()const
{
std::vector<App::DocumentObject*> temp;
PartDesign::Pipe* pcPipe = static_cast<PartDesign::Pipe*>(getObject());
PartDesign::Pipe* pcPipe = getObject<PartDesign::Pipe>();
App::DocumentObject* sketch = pcPipe->getVerifiedSketch(true);
if (sketch)
@@ -94,7 +94,7 @@ TaskDlgFeatureParameters* ViewProviderPipe::getEditDialog() {
bool ViewProviderPipe::onDelete(const std::vector<std::string> &s)
{/*
PartDesign::Pipe* pcPipe = static_cast<PartDesign::Pipe*>(getObject());
PartDesign::Pipe* pcPipe = getObject<PartDesign::Pipe>();
// get the Sketch
Sketcher::SketchObject *pcSketch = 0;
@@ -112,7 +112,7 @@ bool ViewProviderPipe::onDelete(const std::vector<std::string> &s)
void ViewProviderPipe::highlightReferences(ViewProviderPipe::Reference mode, bool on)
{
PartDesign::Pipe* pcPipe = static_cast<PartDesign::Pipe*>(getObject());
PartDesign::Pipe* pcPipe = getObject<PartDesign::Pipe>();
switch (mode) {
case Spine:
@@ -172,7 +172,7 @@ void ViewProviderPipe::highlightReferences(Part::Feature* base, const std::vecto
QIcon ViewProviderPipe::getIcon() const {
QString str = QString::fromLatin1("PartDesign_");
auto* prim = static_cast<PartDesign::Pipe*>(getObject());
auto* prim = getObject<PartDesign::Pipe>();
if(prim->getAddSubType() == PartDesign::FeatureAddSub::Additive)
str += QString::fromLatin1("Additive");
else

View File

@@ -115,7 +115,7 @@ void ViewProviderPrimitive::updateData(const App::Property* p) {
QIcon ViewProviderPrimitive::getIcon() const {
QString str = QString::fromLatin1("PartDesign_");
auto* prim = static_cast<PartDesign::FeaturePrimitive*>(getObject());
auto* prim = getObject<PartDesign::FeaturePrimitive>();
if(prim->getAddSubType() == PartDesign::FeatureAddSub::Additive)
str += QString::fromLatin1("Additive");
else

View File

@@ -139,7 +139,7 @@ void ViewProviderShapeBinder::highlightReferences(bool on)
std::vector<std::string> subs;
if (getObject()->isDerivedFrom(PartDesign::ShapeBinder::getClassTypeId()))
PartDesign::ShapeBinder::getFilteredReferences(&static_cast<PartDesign::ShapeBinder*>(getObject())->Support, obj, subs);
PartDesign::ShapeBinder::getFilteredReferences(&getObject<PartDesign::ShapeBinder>()->Support, obj, subs);
else
return;
@@ -278,7 +278,7 @@ bool ViewProviderSubShapeBinder::canDropObjectEx(App::DocumentObject*,
std::string ViewProviderSubShapeBinder::dropObjectEx(App::DocumentObject* obj, App::DocumentObject* owner,
const char* subname, const std::vector<std::string>& elements)
{
auto self = dynamic_cast<PartDesign::SubShapeBinder*>(getObject());
auto self = getObject<PartDesign::SubShapeBinder>();
if (!self)
return {};
std::map<App::DocumentObject*, std::vector<std::string> > values;
@@ -327,7 +327,7 @@ bool ViewProviderSubShapeBinder::setEdit(int ModNum) {
updatePlacement(true);
break;
case SelectObject: {
auto self = dynamic_cast<PartDesign::SubShapeBinder*>(getObject());
auto self = getObject<PartDesign::SubShapeBinder>();
if (!self || !self->Support.getValue())
break;
@@ -355,7 +355,7 @@ bool ViewProviderSubShapeBinder::setEdit(int ModNum) {
}
void ViewProviderSubShapeBinder::updatePlacement(bool transaction) {
auto self = dynamic_cast<PartDesign::SubShapeBinder*>(getObject());
auto self = getObject<PartDesign::SubShapeBinder>();
if (!self || !self->Support.getValue())
return;

View File

@@ -42,7 +42,7 @@ ViewProviderSketchBased::~ViewProviderSketchBased() = default;
std::vector<App::DocumentObject*> ViewProviderSketchBased::claimChildren() const {
std::vector<App::DocumentObject*> temp;
App::DocumentObject* sketch = static_cast<PartDesign::ProfileBased*>(getObject())->Profile.getValue();
App::DocumentObject* sketch = getObject<PartDesign::ProfileBased>()->Profile.getValue();
if (sketch && !sketch->isDerivedFrom(PartDesign::Feature::getClassTypeId()))
temp.push_back(sketch);
@@ -51,7 +51,7 @@ std::vector<App::DocumentObject*> ViewProviderSketchBased::claimChildren() const
bool ViewProviderSketchBased::onDelete(const std::vector<std::string> &s) {
PartDesign::ProfileBased* feature = static_cast<PartDesign::ProfileBased*>(getObject());
PartDesign::ProfileBased* feature = getObject<PartDesign::ProfileBased>();
// get the Sketch
Sketcher::SketchObject *pcSketch = nullptr;

View File

@@ -78,7 +78,7 @@ void ViewProviderTransformed::setupContextMenu(QMenu* menu, QObject* receiver, c
}
Gui::ViewProvider *ViewProviderTransformed::startEditing(int ModNum) {
PartDesign::Transformed* pcTransformed = static_cast<PartDesign::Transformed*>(getObject());
PartDesign::Transformed* pcTransformed = getObject<PartDesign::Transformed>();
if(!pcTransformed->Originals.getSize()) {
for(auto obj : pcTransformed->getInList()) {
if(obj->isDerivedFrom(PartDesign::MultiTransform::getClassTypeId())) {
@@ -160,7 +160,7 @@ bool ViewProviderTransformed::onDelete(const std::vector<std::string> &s)
void ViewProviderTransformed::recomputeFeature(bool recompute)
{
PartDesign::Transformed* pcTransformed = static_cast<PartDesign::Transformed*>(getObject());
PartDesign::Transformed* pcTransformed = getObject<PartDesign::Transformed>();
if(recompute || (pcTransformed->isError() || pcTransformed->mustExecute()))
pcTransformed->recomputeFeature(true);