Fix reference selection code

PolarPattern was missing some classes. The code is now more consistent
between the patterns.
This commit is contained in:
André Althaus
2024-02-28 16:42:59 +01:00
parent bd0e555e4e
commit 1ee4a555da
3 changed files with 25 additions and 27 deletions

View File

@@ -218,21 +218,21 @@ void TaskPolarPatternParameters::adaptVisibilityToMode()
void TaskPolarPatternParameters::onSelectionChanged(const Gui::SelectionChanges& msg)
{
if (selectionMode != SelectionMode::None && msg.Type == Gui::SelectionChanges::AddSelection) {
if (originalSelected(msg)) {
exitSelectionMode();
}
else {
else if (selectionMode == SelectionMode::Reference) {
auto pcPolarPattern = static_cast<PartDesign::PolarPattern*>(getObject());
std::vector<std::string> axes;
App::DocumentObject* selObj = nullptr;
auto pcPolarPattern = static_cast<PartDesign::PolarPattern*>(getObject());
getReferencedSelection(pcPolarPattern, msg, selObj, axes);
if (!selObj) {
return;
}
if (selectionMode == SelectionMode::Reference
|| selObj->isDerivedFrom(App::Line::getClassTypeId())) {
if (selObj->isDerivedFrom<App::Line>() || selObj->isDerivedFrom<Part::Feature>()
|| selObj->isDerivedFrom<PartDesign::Line>()) {
setupTransaction();
pcPolarPattern->Axis.setValue(selObj, axes);
recomputeFeature();