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);
+ //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
aDoc->removeFeature(aFeature);
}
}
- integer(NUMBER_OF_COPIES_ID())->setValue(0);
+ aRefListOfRotated->clear();
+ 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 (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);
+ //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
aDoc->removeFeature(aFeature);
}
}
- integer(NUMBER_OF_COPIES_ID())->setValue(0);
+ aRefListOfTranslated->clear();
+ 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);
+ //if (isUpdateFlushed)
+ // Events_Loop::loop()->setFlushed(anUpdateEvent, true);
}
}
}
aDriver->UserDrawCallback() = SymbolPrsCallBack;
}
- if (!updatePoints(20))
+ if (!updatePoints(20)) {
+ mySPoints.Clear();
return;
+ }
int aNbVertex = myPntArray->VertexNumber();
if (myOwner.IsNull()) {
// Redisplay the visible object or the object of the current operation
bool isVisibleObject = aDisplayer->isVisible(aObj);
#ifdef DEBUG_FEATURE_REDISPLAY
- //QString anObjInfo = ModuleBase_Tools::objectInfo((aObj));
- //qDebug(QString("visible=%1 : display= %2").arg(isVisibleObject).arg(anObjInfo).toStdString().c_str());
+ QString anObjInfo = ModuleBase_Tools::objectInfo((aObj));
+ qDebug(QString("visible=%1 : display= %2").arg(isVisibleObject).arg(anObjInfo).toStdString().c_str());
+
+ FeaturePtr aFeature = std::dynamic_pointer_cast<ModelAPI_Feature>(aObj);
+ if (aFeature.get()) {
+ std::string aKind = aFeature->getKind();
+ if (aKind == "SketchMultiRotation")
+ bool aValue = true;
+ }
#endif
if (isVisibleObject) { // redisplay visible object