Salome HOME
updated copyright message
[modules/shaper.git] / src / PartSetPlugin / PartSetPlugin_Part.cpp
index df8b645109bd5d87b6315a15134a99cb5bc9ac66..c5c26e7fd52e42877371f5f2441bacf7e1d3ee3e 100644 (file)
@@ -1,8 +1,21 @@
-// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
-
-// File:        PartSetPlugin_Part.cxx
-// Created:     27 Mar 2014
-// Author:      Mikhail PONIKAROV
+// Copyright (C) 2014-2023  CEA, EDF
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
 
 #include "PartSetPlugin_Part.h"
 #include "ModelAPI_Session.h"
@@ -28,7 +41,9 @@ void PartSetPlugin_Part::execute()
     setResult(aResult);
     // 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())) {
+    std::shared_ptr<ModelAPI_AttributeDocRef> aDocRef =
+      aResult->data()->document(ModelAPI_ResultPart::DOC_REF());
+    if (!ModelAPI_Session::get()->isLoadByDemand(aResult->data()->name(), aDocRef->docId())) {
       // 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
@@ -59,7 +74,7 @@ std::shared_ptr<ModelAPI_Feature> PartSetPlugin_Part::addFeature(std::string the
   return FeaturePtr();
 }
 
-int PartSetPlugin_Part::numberOfSubs(bool forTree) const
+int PartSetPlugin_Part::numberOfSubs(bool /*forTree*/) const
 {
   ResultPartPtr aResult = std::dynamic_pointer_cast<ModelAPI_ResultPart>(firstResult());
   if (aResult.get()) {
@@ -70,7 +85,8 @@ int PartSetPlugin_Part::numberOfSubs(bool forTree) const
   return 0;
 }
 
-std::shared_ptr<ModelAPI_Feature> PartSetPlugin_Part::subFeature(const int theIndex, bool forTree)
+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()) {
@@ -81,7 +97,7 @@ std::shared_ptr<ModelAPI_Feature> PartSetPlugin_Part::subFeature(const int theIn
   }
   return FeaturePtr();
 }
-
+//LCOV_EXCL_START
 int PartSetPlugin_Part::subFeatureId(const int theIndex) const
 {
   ResultPartPtr aResult = std::dynamic_pointer_cast<ModelAPI_ResultPart>(firstResult());
@@ -93,7 +109,7 @@ int PartSetPlugin_Part::subFeatureId(const int theIndex) const
   }
   return 0; // none
 }
-
+//LCOV_EXCL_STOP
 bool PartSetPlugin_Part::isSub(ObjectPtr theObject) const
 {
   ResultPartPtr aResult = std::dynamic_pointer_cast<ModelAPI_ResultPart>(firstResult());
@@ -104,15 +120,12 @@ bool PartSetPlugin_Part::isSub(ObjectPtr theObject) const
   return false;
 }
 
-void PartSetPlugin_Part::removeFeature(std::shared_ptr<ModelAPI_Feature> theFeature)
-{
-}
-
 void PartSetPlugin_Part::erase() {
   ResultPartPtr aResult = std::dynamic_pointer_cast<ModelAPI_ResultPart>(firstResult());
   if (aResult.get()) {
     DocumentPtr aDoc = aResult->partDoc();
-    aDoc->eraseAllFeatures();
+    if (aDoc.get())
+      aDoc->eraseAllFeatures();
   }
   ModelAPI_Feature::erase();
 }