]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Explicit initialization of myDisabled and myConcealed fields of base objects (to...
authormpv <mpv@opencascade.com>
Thu, 17 Sep 2015 08:21:29 +0000 (11:21 +0300)
committermpv <mpv@opencascade.com>
Thu, 17 Sep 2015 08:21:29 +0000 (11:21 +0300)
13 files changed:
src/Model/Model_Document.cpp
src/Model/Model_Objects.cpp
src/Model/Model_ResultBody.cpp
src/Model/Model_ResultCompSolid.cpp
src/Model/Model_ResultConstruction.cpp
src/Model/Model_ResultGroup.cpp
src/Model/Model_ResultParameter.cpp
src/Model/Model_ResultPart.cpp
src/ModelAPI/ModelAPI_Feature.cpp
src/ModelAPI/ModelAPI_Feature.h
src/ModelAPI/ModelAPI_Object.h
src/ModelAPI/ModelAPI_Result.cpp
src/ModelAPI/ModelAPI_Result.h

index fb8b0a1def9dc1e7c45fd2764f14d11f8a583bb0..a657f75ef8680bbfdd118eaa418ae15fb3e71cad 100644 (file)
@@ -607,6 +607,7 @@ FeaturePtr Model_Document::addFeature(std::string theID, const bool theMakeCurre
   FeaturePtr aFeature = aSession->createFeature(theID, this);
   if (!aFeature)
     return aFeature;
+  aFeature->init();
   Model_Document* aDocToAdd;
   if (!aFeature->documentToAdd().empty()) { // use the customized document to add
     if (aFeature->documentToAdd() != kind()) { // the root document by default
index 2ac45f73153608560da3cd217c87a8e2cb980099..d3069672a46907aaae2a472f02214a252b14af62 100644 (file)
@@ -142,7 +142,6 @@ void Model_Objects::addFeature(FeaturePtr theFeature, const FeaturePtr theAfterT
     // event: feature is added
     static Events_ID anEvent = Events_Loop::eventByName(EVENT_OBJECT_CREATED);
     ModelAPI_EventCreator::get()->sendUpdated(theFeature, anEvent);
-    theFeature->setDisabled(false); // by default created feature is enabled
     updateHistory(ModelAPI_Feature::group());
   } else { // make feature has not-null data anyway
     theFeature->setData(Model_Data::invalidData());
@@ -601,12 +600,12 @@ void Model_Objects::synchronizeFeatures(
         aLabIter.Value()->Label().ForgetAllAttributes();
         continue;
       }
+      aFeature->init();
       // this must be before "setData" to redo the sketch line correctly
       myFeatures.Bind(aFeatureLabel, aFeature);
       aNewFeatures.insert(aFeature);
       initData(aFeature, aFeatureLabel, TAG_FEATURE_ARGUMENTS);
       updateHistory(aFeature);
-      aFeature->setDisabled(false); // by default created feature is enabled (this allows to recreate the results before "setCurrent" is called)
 
       // event: model is updated
       ModelAPI_EventCreator::get()->sendUpdated(aFeature, aCreateEvent);
@@ -796,6 +795,7 @@ void Model_Objects::storeResult(std::shared_ptr<ModelAPI_Data> theFeatureData,
                                  std::shared_ptr<ModelAPI_Result> theResult,
                                  const int theResultIndex)
 {
+  theResult->init();
   theResult->setDoc(myDoc);
   initData(theResult, resultLabel(theFeatureData, theResultIndex), TAG_FEATURE_ARGUMENTS);
   if (theResult->data()->name().empty()) {  // if was not initialized, generate event and set a name
index 9c5fa59cc1d25ea72ab16fe652160712dd5bad7c..d7e3f46c9fe0bf6336671aa5a4f3e1e83c62fbc4 100644 (file)
@@ -16,9 +16,6 @@
 Model_ResultBody::Model_ResultBody()
 {
   myBuilder = new Model_BodyBuilder(this);
-
-  myIsDisabled = true; // by default it is not initialized and false to be after created
-  setIsConcealed(false);
 }
 
 void Model_ResultBody::initAttributes()
index 633e8cd08d920035e40ca45483629af46de0ff02..b731fdcef7714d526b569535fc5190ac77221f52 100755 (executable)
@@ -24,8 +24,6 @@ Model_ResultCompSolid::Model_ResultCompSolid()
 {
   myBuilder = new Model_BodyBuilder(this);
   myLastConcealed = false;
-  setIsConcealed(myLastConcealed);
-  myIsDisabled = true; // by default it is not initialized and false to be after created
   updateSubs(shape()); // in case of open, etc.
 }
 
index 11cf883cd60908c0915e0fbf373948d640b0cf24..990dee11e474b2739eb4d24cd5da321c5d28817e 100644 (file)
@@ -44,11 +44,9 @@ std::shared_ptr<GeomAPI_Shape> Model_ResultConstruction::shape()
 
 Model_ResultConstruction::Model_ResultConstruction()
 {
-  myIsDisabled = true; // by default it is not initialized and false to be after created
   myIsInHistory = true;
   myIsInfinite = false;
   myFacesUpToDate = false;
-  setIsConcealed(false);
 }
 
 void Model_ResultConstruction::setIsInHistory(const bool isInHistory)
index 87210b5c52a61ccd4b9fdf5b48a3e924e7ef9056..c952c8b9d64d926ac055d1938c4c12cdab682b9e 100644 (file)
@@ -14,8 +14,6 @@
 
 Model_ResultGroup::Model_ResultGroup(std::shared_ptr<ModelAPI_Data> theOwnerData)
 {
-  myIsDisabled = true; // by default it is not initialized and false to be after created
-  setIsConcealed(false);
   myOwnerData = theOwnerData;
 }
 
index 5c0f56a66aa65a005e6f244a90aa4d44ed4013d6..731bbde93c5220979938493b6f9434b01930db1c 100644 (file)
@@ -21,6 +21,4 @@ void Model_ResultParameter::initAttributes()
 
 Model_ResultParameter::Model_ResultParameter()
 {
-  myIsDisabled = true; // by default it is not initialized and false to be after created
-  setIsConcealed(false);
 }
index 7ce87b434be98d602a06a048d5bb9bd2e393edbe..7edb9b2e53e980d170da9760cc902ba63f59435b 100644 (file)
@@ -50,9 +50,7 @@ std::shared_ptr<ModelAPI_Document> Model_ResultPart::partDoc()
 
 Model_ResultPart::Model_ResultPart()
 {
-  myIsDisabled = true; // by default it is not initialized and false to be after created
   myIsInLoad = false;
-  setIsConcealed(false);
 }
 
 void Model_ResultPart::activate()
index f677d5c52e2a542bc87226141944c271e7909692..9edfefa4c8f69ed57c5128ecadbc25342d675016 100644 (file)
@@ -203,3 +203,8 @@ bool ModelAPI_Feature::isPreviewNeeded() const
 {
   return true;
 }
+
+void ModelAPI_Feature::init()
+{
+  myIsDisabled = false;
+}
index aed22e183c7df08f3ace228016203629588fd89b..2508e6a2ea9f726e3d789a208c2d4e5b15c257e6 100644 (file)
@@ -195,7 +195,13 @@ class ModelAPI_Feature : public ModelAPI_Object
   {
     return data()->attribute(theID);
   }
- // -----------------------------------------------------------------------------------------------
+  protected:
+  /// This method is called just after creation of the object: it must initialize
+  /// all fields, normally initialized in the constructor
+  MODELAPI_EXPORT virtual void init();
+
+  friend class Model_Document;
+  friend class Model_Objects;
 };
 
 //! Pointer on feature object
index 3ef14da91a56321ccbbe7bb8f8e88ed5418e7808..a2d840901ca3131a81bf75fc32e8d47d9e24f2d9 100644 (file)
@@ -77,6 +77,10 @@ class ModelAPI_Object: public ModelAPI_Entity
   MODELAPI_EXPORT virtual void setDisplayed(const bool theDisplay);
 
  protected:
+  /// This method is called just after creation of the object: it must initialize
+  /// all fields, normally initialized in the constructor
+  MODELAPI_EXPORT virtual void init() = 0;
+
   /// Sets the data manager of an object (document does)
   MODELAPI_EXPORT virtual void setData(std::shared_ptr<ModelAPI_Data> theData);
 
index 8f0b43c5ecdbefe6c8bc711ae62099507db9f5dc..624566416846743e143ed66c62a2589e6356172a 100644 (file)
@@ -72,3 +72,9 @@ void ModelAPI_Result::attributeChanged(const std::string& theID)
   static const ModelAPI_EventCreator* aECreator = ModelAPI_EventCreator::get();
   aECreator->sendUpdated(data()->attribute(theID)->owner(), EVENT_DISP);
 }
+
+void ModelAPI_Result::init()
+{
+  myIsDisabled = true; // by default it is not initialized and false to be after created
+  myIsConcealed = false;
+}
index 7e3e4ebba323552b5344d02083908ec8137c9d69..fb96df98c3b350d62096aeecf31e66843a39a403 100644 (file)
@@ -68,6 +68,13 @@ class ModelAPI_Result : public ModelAPI_Object
   /// On change of attribute of the result update presentation of this result:
   /// for the current moment there are only presentation attributes assigned to results
   MODELAPI_EXPORT virtual void attributeChanged(const std::string& theID);
+
+protected:
+  /// This method is called just after creation of the object: it must initialize
+  /// all fields, normally initialized in the constructor
+  MODELAPI_EXPORT virtual void init();
+
+friend class Model_Objects;
 };
 
 //! Pointer on feature object