Salome HOME
Merge remote-tracking branch 'origin/PortingSalome760' into Dev_1.3.0
[modules/shaper.git] / src / PartSet / PartSet_PartDataModel.cpp
index e9d378c300da8f71431734500e95268de7d1baaa..12e7312da2961b8c010f9b1c82becc7ae096c3af 100644 (file)
@@ -17,6 +17,9 @@
 #include <ModelAPI_ResultBody.h>
 #include <ModelAPI_ResultGroup.h>
 #include <ModelAPI_AttributeDouble.h>
+#include <ModelAPI_Events.h>
+
+#include <Events_Loop.h>
 
 #include <QIcon>
 #include <QBrush>
@@ -468,11 +471,10 @@ bool PartSet_PartDataModel::hasChildren(const QModelIndex& theParent) const
 
 DocumentPtr PartSet_PartDataModel::partDocument() const
 {
-  DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument();
-  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();
+  ResultPartPtr aPart = std::dynamic_pointer_cast<ModelAPI_ResultPart>(myPart->firstResult()); 
+  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
@@ -521,13 +523,6 @@ QModelIndex PartSet_PartDataModel::findGroup(const std::string& theGroup) const
   return QModelIndex();
 }
 
-ResultPartPtr PartSet_PartDataModel::part() const
-{
-  DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument();
-  ObjectPtr aObj = aRootDoc->object(ModelAPI_ResultPart::group(), myId);
-  return std::dynamic_pointer_cast<ModelAPI_ResultPart>(aObj);
-}
-
 QModelIndex PartSet_PartDataModel::objectIndex(const ObjectPtr& theObject) const
 {
   QModelIndex aIndex;