Salome HOME
updated copyright message
[modules/kernel.git] / src / SALOMEDSImpl / SALOMEDSImpl_AttributeIOR.cxx
index 8983f3d949dd03397a46faef21802ea2c18cdc2f..bbfb81035818b5e889daa88bf2f034e21ed912c5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -65,8 +65,19 @@ void SALOMEDSImpl_AttributeIOR::SetValue(const std::string& theValue)
   CheckLocked();
 
   Backup();
+  //remove IOR entry in study
+  if(theValue != myString)
+    {
+      SALOMEDSImpl_Study* study=SALOMEDSImpl_Study::GetStudyImpl(Label());
+      study->RegisterGenObj(theValue, Label());
+      study->UnRegisterGenObj(myString, Label());
+      study->DeleteIORLabelMapItem(myString);
+    }
 
   myString = theValue;
+
+  //add IOR entry in study
+  SALOMEDSImpl_Study::IORUpdated(this);
   
   //Reason = 5 means that IOR attribute updated
   //Used in the gui module to detect that IOR attribure was assigned to the object
@@ -93,6 +104,7 @@ SALOMEDSImpl_AttributeIOR::SALOMEDSImpl_AttributeIOR()
 
 SALOMEDSImpl_AttributeIOR::~SALOMEDSImpl_AttributeIOR()
 {
+  SALOMEDSImpl_Study::UnRegisterGenObj(myString, Label());
 }
 
 //=======================================================================