Skip to content

Commit 9cdf192

Browse files
committed
Fem: Don't hide input filter with DataAtPoint and DataAlongLine - fixes FreeCAD#14135
1 parent f814ef6 commit 9cdf192

File tree

1 file changed

+10
-13
lines changed

1 file changed

+10
-13
lines changed

src/Mod/Fem/Gui/Command.cpp

+10-13
Original file line numberDiff line numberDiff line change
@@ -1668,14 +1668,8 @@ void setupFilter(Gui::Command* cmd, std::string Name)
16681668

16691669
auto selObject = Gui::Selection().getSelection()[0].pObject;
16701670

1671-
// issue error if no post object
1672-
if (!((selObject->getTypeId() == Base::Type::fromName("Fem::FemPostPipeline"))
1673-
|| (selObject->getTypeId() == Base::Type::fromName("Fem::FemPostClipFilter"))
1674-
|| (selObject->getTypeId() == Base::Type::fromName("Fem::FemPostContoursFilter"))
1675-
|| (selObject->getTypeId() == Base::Type::fromName("Fem::FemPostCutFilter"))
1676-
|| (selObject->getTypeId() == Base::Type::fromName("Fem::FemPostDataAlongLineFilter"))
1677-
|| (selObject->getTypeId() == Base::Type::fromName("Fem::FemPostScalarClipFilter"))
1678-
|| (selObject->getTypeId() == Base::Type::fromName("Fem::FemPostWarpVectorFilter")))) {
1671+
// issue error if no filter object
1672+
if (!(selObject->isDerivedFrom<Fem::FemPostObject>())) {
16791673
QMessageBox::warning(
16801674
Gui::getMainWindow(),
16811675
qApp->translate("setupFilter", "Error: no post processing object selected."),
@@ -1689,15 +1683,15 @@ void setupFilter(Gui::Command* cmd, std::string Name)
16891683
// (which can be a pipeline itself)
16901684
bool selectionIsPipeline = false;
16911685
Fem::FemPostPipeline* pipeline = nullptr;
1692-
if (selObject->getTypeId() == Base::Type::fromName("Fem::FemPostPipeline")) {
1686+
if (selObject->isDerivedFrom<Fem::FemPostPipeline>()) {
16931687
pipeline = static_cast<Fem::FemPostPipeline*>(selObject);
16941688
selectionIsPipeline = true;
16951689
}
16961690
else {
16971691
auto parents = selObject->getInList();
16981692
if (!parents.empty()) {
16991693
for (auto parentObject : parents) {
1700-
if (parentObject->getTypeId() == Base::Type::fromName("Fem::FemPostPipeline")) {
1694+
if (parentObject->isDerivedFrom<Fem::FemPostPipeline>()) {
17011695
pipeline = static_cast<Fem::FemPostPipeline*>(parentObject);
17021696
}
17031697
}
@@ -1756,9 +1750,12 @@ void setupFilter(Gui::Command* cmd, std::string Name)
17561750
selObjectView->VectorMode.getValueAsString());
17571751

17581752
// hide selected filter
1759-
cmd->doCommand(Gui::Command::Doc,
1760-
"App.activeDocument().%s.ViewObject.Visibility = False",
1761-
selObject->getNameInDocument());
1753+
if (!femFilter->isDerivedFrom<Fem::FemPostDataAlongLineFilter>()
1754+
&& !femFilter->isDerivedFrom<Fem::FemPostDataAtPointFilter>()) {
1755+
cmd->doCommand(Gui::Command::Doc,
1756+
"App.activeDocument().%s.ViewObject.Visibility = False",
1757+
selObject->getNameInDocument());
1758+
}
17621759

17631760
cmd->updateActive();
17641761
// open the dialog to edit the filter

0 commit comments

Comments
 (0)