ObjectPtr aObject = aRootDoc->object(ModelAPI_Feature::group(), myId);
FeaturePtr aFeature = ModelAPI_Feature::feature(aObject);
ResultPartPtr aPart = std::dynamic_pointer_cast<ModelAPI_ResultPart>(aFeature->firstResult());
- return aPart->partDoc();
+ if (aPart.get()) // this may be null is Part feature is disabled
+ return aPart->partDoc();
+ return DocumentPtr();
}
ObjectPtr PartSet_PartDataModel::object(const QModelIndex& theIndex) const
int PartSet_PartDataModel::lastHistoryRow() const
{
DocumentPtr aDoc = partDocument();
- FeaturePtr aFeature = aDoc->currentFeature();
+ FeaturePtr aFeature = aDoc->currentFeature(true);
if (aFeature.get())
return getRowsNumber() + aDoc->index(aFeature);
else
if (theIndex.internalId() == HistoryObject) {
ObjectPtr aObject = object(theIndex);
aMgr->startOperation(aOpName);
- aDoc->setCurrentFeature(std::dynamic_pointer_cast<ModelAPI_Feature>(aObject));
+ aDoc->setCurrentFeature(std::dynamic_pointer_cast<ModelAPI_Feature>(aObject), true);
aMgr->finishOperation();
} else {
aMgr->startOperation(aOpName);
- aDoc->setCurrentFeature(FeaturePtr());
+ aDoc->setCurrentFeature(FeaturePtr(), true);
aMgr->finishOperation();
}
}