#include <SelectMgr_IndexedMapOfOwner.hxx>
#include <StdSelect_BRepOwner.hxx>
-//#define DEBUG_EMPTY_SHAPE
-
PartSet_WidgetShapeSelector::PartSet_WidgetShapeSelector(QWidget* theParent,
ModuleBase_IWorkshop* theWorkshop,
const Config_WidgetAPI* theData,
std::shared_ptr<SketchPlugin_Feature> aSPFeature =
std::dynamic_pointer_cast<SketchPlugin_Feature>(aSelectedFeature);
// Processing of sketch object
-#ifdef DEBUG_EMPTY_SHAPE
- if (aSPFeature.get() != NULL && theShape.get()) {
- setPointAttribute(theSelectedObject, theShape);
-#else
if (aSPFeature.get() != NULL) {
GeomShapePtr aShape = theShape;
if (!aShape.get()) {
}
}
setPointAttribute(theSelectedObject, aShape);
-#endif
}
else
ModuleBase_WidgetShapeSelector::setObject(theSelectedObject, theShape);
if (theID == MIRROR_LIST_ID()) {
AttributeSelectionListPtr aMirrorObjectRefs = selectionList(MIRROR_LIST_ID());
if (aMirrorObjectRefs->size() == 0) {
- // Wait all objects being created, then send update events
- static Events_ID anUpdateEvent = Events_Loop::eventByName(EVENT_OBJECT_UPDATED);
- bool isUpdateFlushed = Events_Loop::loop()->isFlushed(anUpdateEvent);
- if (isUpdateFlushed)
- Events_Loop::loop()->setFlushed(anUpdateEvent, false);
-
// Clear list of objects
AttributeRefListPtr aRefListOfMirrored = std::dynamic_pointer_cast<ModelAPI_AttributeRefList>(
data()->attribute(SketchPlugin_Constraint::ENTITY_C()));
if (aFeature)
aDoc->removeFeature(aFeature);
}
-
- // send events to update the sub-features by the solver
- if (isUpdateFlushed)
- Events_Loop::loop()->setFlushed(anUpdateEvent, true);
}
}
}
if (theID == ROTATION_LIST_ID()) {
AttributeSelectionListPtr aRotationObjectRefs = selectionList(ROTATION_LIST_ID());
if (aRotationObjectRefs->size() == 0) {
- // the commented code is not necessary here because if an update event is flushed
- // before the setFlushed with true value happens, it leads to crash
- // Wait all objects being created, then send update events
- static Events_ID anUpdateEvent = Events_Loop::eventByName(EVENT_OBJECT_UPDATED);
- //bool isUpdateFlushed = Events_Loop::loop()->isFlushed(anUpdateEvent);
- //if (isUpdateFlushed)
- // Events_Loop::loop()->setFlushed(anUpdateEvent, false);
-
int aNbCopies = integer(NUMBER_OF_COPIES_ID())->value();
// Clear list of objects
AttributeRefListPtr aRefListOfRotated = std::dynamic_pointer_cast<ModelAPI_AttributeRefList>(
data()->attribute(SketchPlugin_Constraint::ENTITY_A()))->clear();
std::dynamic_pointer_cast<ModelAPI_AttributeRefList>(
data()->attribute(SketchPlugin_Constraint::ENTITY_B()))->clear();
-
- // the commented code is incorrect and obsolete, so it is removed
- // send events to update the sub-features by the solver
- //if (isUpdateFlushed)
- // Events_Loop::loop()->setFlushed(anUpdateEvent, true);
}
}
}
if (theID == TRANSLATION_LIST_ID()) {
AttributeSelectionListPtr aTranslationObjectRefs = selectionList(TRANSLATION_LIST_ID());
if (aTranslationObjectRefs->size() == 0) {
- // the commented code is not necessary here because if an update event is flushed
- // before the setFlushed with true value happens, it leads to crash
- // Wait all objects being created, then send update events
- //static Events_ID anUpdateEvent = Events_Loop::eventByName(EVENT_OBJECT_UPDATED);
- //bool isUpdateFlushed = Events_Loop::loop()->isFlushed(anUpdateEvent);
- //if (isUpdateFlushed)
- // Events_Loop::loop()->setFlushed(anUpdateEvent, false);
-
int aNbCopies = integer(NUMBER_OF_COPIES_ID())->value();
// Clear list of objects
AttributeRefListPtr aRefListOfTranslated = std::dynamic_pointer_cast<ModelAPI_AttributeRefList>(
data()->attribute(SketchPlugin_Constraint::ENTITY_A()))->clear();
std::dynamic_pointer_cast<ModelAPI_AttributeRefList>(
data()->attribute(SketchPlugin_Constraint::ENTITY_B()))->clear();
-
- // send events to update the sub-features by the solver
- //if (isUpdateFlushed)
- // Events_Loop::loop()->setFlushed(anUpdateEvent, true);
}
}
}