QList<ModuleBase_ViewerPrs> aSelected = getFilteredSelected();
- bool isDone = setSelection(aSelected, false);
+ bool isDone = setSelection(aSelected, true/*false*/);
+ // "false" flag should be used here, it connects to the #26658 OCC bug, when the user click in
+ // the same place repeatedly without mouse moved. In the case validation by filters is not
+ // perfromed, so an invalid object is selected. E.g. distance constraint, selection of a point.
+ // the 3rd click in the same point allow using this point.
emit valuesChanged();
// the updateObject method should be called to flush the updated sigal. The workshop listens it,
// calls validators for the feature and, as a result, updates the Apply button state.
bool aValid = false;
GeomShapePtr aShape = theShape;
+
+ QIntList aShapeTypes = getShapeTypes();
+ if (aShapeTypes.empty()) {
+ aValid = true;
+ return aValid;
+ }
+ // when the SHAPE type is provided by XML, the hole result shape can be selected.
+ if (!aShape.get() && aShapeTypes.contains(TopAbs_SHAPE)) {
+ aValid = true;
+ return aValid;
+ }
+
if (!aShape.get() && theResult.get()) {
if (theResult.get())
aShape = theResult->shape();
}
- QIntList aShapeTypes = getShapeTypes();
-
TopAbs_ShapeEnum aShapeType = TopAbs_SHAPE;
if (aShape.get()) {
// Check that the selection corresponds to selection type
// for compounds check sub-shapes: it may be compound of needed type:
// Booleans may produce compounds of Solids
if (aShapeType == TopAbs_COMPOUND) {
- if (aShapeTypes.contains(aShapeType))
- return true;
-
aShapeType = GeomValidators_Tools::getCompoundSubType(aTopoShape);
}
}