Salome HOME
Fix for the issue #1556 : Part rebuilding issue
[modules/shaper.git] / src / PartSetPlugin / PartSetPlugin_Part.cpp
index f8b348a37227979a7d1589b63007f994812b84e2..c40a0eadf3d87fec1a2374001f2e0762cba98d77 100644 (file)
@@ -31,8 +31,8 @@ void PartSetPlugin_Part::execute()
     // do not activate part by simple execution if it is not loaded yet: it must be explicitly
     // activated for this
     if (!ModelAPI_Session::get()->isLoadByDemand(aResult->data()->name())) {
-      // On undo/redo creation of the part result the Object Borwser must get creation event
-      // earlier that activation of this part event (otherwise the crash is producted)
+      // On undo/redo creation of the part result the Object Browser must get creation event
+      // earlier that activation of this part event (otherwise the crash is produced)
       // So, send a creation event earlier, without any grouping
       static Events_ID aCreateID = Events_Loop::eventByName(EVENT_OBJECT_CREATED);
       ModelAPI_EventCreator::get()->sendUpdated(aResult, aCreateID, false);
@@ -61,7 +61,7 @@ std::shared_ptr<ModelAPI_Feature> PartSetPlugin_Part::addFeature(std::string the
   return FeaturePtr();
 }
 
-int PartSetPlugin_Part::numberOfSubs() const
+int PartSetPlugin_Part::numberOfSubs(bool forTree) const
 {
   ResultPartPtr aResult = std::dynamic_pointer_cast<ModelAPI_ResultPart>(firstResult());
   if (aResult.get()) {
@@ -72,7 +72,7 @@ int PartSetPlugin_Part::numberOfSubs() const
   return 0;
 }
 
-std::shared_ptr<ModelAPI_Feature> PartSetPlugin_Part::subFeature(const int theIndex) const
+std::shared_ptr<ModelAPI_Feature> PartSetPlugin_Part::subFeature(const int theIndex, bool forTree)
 {
   ResultPartPtr aResult = std::dynamic_pointer_cast<ModelAPI_ResultPart>(firstResult());
   if (aResult.get()) {
@@ -101,17 +101,11 @@ bool PartSetPlugin_Part::isSub(ObjectPtr theObject) const
   ResultPartPtr aResult = std::dynamic_pointer_cast<ModelAPI_ResultPart>(firstResult());
   if (aResult.get()) {
     DocumentPtr aDoc = aResult->partDoc();
-    return document() == aDoc;
+    return theObject->document() == aDoc;
   }
   return false;
 }
 
 void PartSetPlugin_Part::removeFeature(std::shared_ptr<ModelAPI_Feature> theFeature)
 {
-  ResultPartPtr aResult = std::dynamic_pointer_cast<ModelAPI_ResultPart>(firstResult());
-  if (aResult.get()) {
-    DocumentPtr aDoc = aResult->partDoc();
-    if (aDoc.get() && aDoc->isOpened())
-      aDoc->removeFeature(theFeature);
-  }
 }