Salome HOME
Merge branch 'BR_2017_PORTING' into BR_2018_V8_5
[modules/hydro.git] / src / HYDROData / HYDROData_Entity.cxx
index 32670b80f3da324fd1237f8c05b5c3cb2ac10c92..e052c425943f0adc2138c8f90a04847d223b707d 100644 (file)
@@ -183,20 +183,22 @@ QString HYDROData_Entity::GetDefaultName() const
 
 void HYDROData_Entity::SetName(const QString& theName, bool isDefault)
 {
-  TDataStd_Name::Set(myLab, TCollection_ExtendedString(theName.toLatin1().constData()));
+  Handle(TDataStd_Name) A = TDataStd_Name::Set(myLab, TCollection_ExtendedString(theName.toLatin1().constData()));
+  A->SetID(TDataStd_Name::GetID());
   if (isDefault)
+  {
+    TDF_Label aDefaultNameLabel = myLab.FindChild( DataTag_DefaultName, true );
+    if ( aDefaultNameLabel.IsNull() )
+      return;
+    Handle(TDataStd_AsciiString) theDefaultName;
+
+    if ( !aDefaultNameLabel.FindAttribute( TDataStd_AsciiString::GetID(), theDefaultName ))
     {
-      TDF_Label aDefaultNameLabel = myLab.FindChild( DataTag_DefaultName, true );
-      if ( aDefaultNameLabel.IsNull() )
-        return;
-      Handle(TDataStd_AsciiString) theDefaultName;
-
-      if ( !aDefaultNameLabel.FindAttribute( TDataStd_AsciiString::GetID(), theDefaultName ))
-        {
-          TCollection_AsciiString aName = theName.toStdString().c_str();
-          theDefaultName = TDataStd_AsciiString::Set(myLab.FindChild( DataTag_DefaultName), aName );
-        }
+      TCollection_AsciiString aName = theName.toStdString().c_str();
+      theDefaultName = TDataStd_AsciiString::Set(myLab.FindChild( DataTag_DefaultName), aName );
+      theDefaultName->SetID( TDataStd_AsciiString::GetID() );
     }
+  }
 }
 
 QStringList HYDROData_Entity::DumpToPython( const QString& thePyScriptPath,
@@ -240,7 +242,8 @@ QVariant HYDROData_Entity::GetDataVariant()
 
 void HYDROData_Entity::ClearChanged()
 {
-  TDataStd_Integer::Set( myLab.FindChild( DataTag_GeomChange ), 0 );
+  Handle(TDataStd_Integer) A = TDataStd_Integer::Set( myLab.FindChild( DataTag_GeomChange ), 0 );
+  A->SetID(TDataStd_Integer::GetID());
 }
 
 int HYDROData_Entity::GetGeomChangeFlag() const
@@ -272,7 +275,8 @@ void HYDROData_Entity::Changed( Geometry theChangedGeometry )
     return;
 
   aGeomChangeFlag = ( aGeomChangeFlag | aBitsToChange );
-  TDataStd_Integer::Set( aGeomChangeLab, aGeomChangeFlag );
+  Handle(TDataStd_Integer) anAttr = TDataStd_Integer::Set( aGeomChangeLab, aGeomChangeFlag );
+  anAttr->SetID( TDataStd_Integer::GetID() );
 
   HYDROData_Iterator anIter( aDocument );
   for ( ; anIter.More(); anIter.Next() )
@@ -400,7 +404,8 @@ bool HYDROData_Entity::GetZLevel( Standard_Integer& theLevel ) const
 
 void HYDROData_Entity::SetZLevel( const Standard_Integer& theLevel )
 {
-  TDataStd_Integer::Set( myLab.FindChild( DataTag_ZLevel ), theLevel );
+  Handle(TDataStd_Integer) A = TDataStd_Integer::Set( myLab.FindChild( DataTag_ZLevel ), theLevel );
+  A->SetID(TDataStd_Integer::GetID());
 }
 
 void HYDROData_Entity::RemoveZLevel()
@@ -429,6 +434,7 @@ void HYDROData_Entity::SaveByteArray( const int   theTag,
   Handle(TDataStd_ByteArray) aData;
   if (!aLab.FindAttribute(TDataStd_ByteArray::GetID(), aData)) {
     aData = TDataStd_ByteArray::Set(aLab, 1, theLen);
+    aData->SetID( TDataStd_ByteArray::GetID() );
   }
   Standard_Byte* Byte0 = &(aData->InternalArray()->ChangeArray1().ChangeFirst());
   memcpy(Byte0, theData, theLen * sizeof (char));
@@ -493,6 +499,7 @@ void HYDROData_Entity::AddReferenceObject( const Handle(HYDROData_Entity)& theOb
 
   Handle(TDataStd_ReferenceList) aRefs = getReferenceList( theTag, true );
   aRefs->Append( theObj->Label() );
+  aRefs->SetID(TDataStd_ReferenceList::GetID());
 }
 
 void HYDROData_Entity::SetReferenceObject( const Handle(HYDROData_Entity)& theObj,
@@ -666,7 +673,10 @@ Handle(TDataStd_ReferenceList) HYDROData_Entity::getReferenceList( const int the
 
   Handle(TDataStd_ReferenceList) aRefs;
   if ( !aLabel.FindAttribute( TDataStd_ReferenceList::GetID(), aRefs ) && theIsCreate )
+  {
     aRefs = TDataStd_ReferenceList::Set( aLabel );
+    aRefs->SetID(TDataStd_ReferenceList::GetID());
+  }
   return aRefs;
 }
 
@@ -677,7 +687,10 @@ void HYDROData_Entity::SetColor( const QColor& theColor,
 
   Handle(TDataStd_IntegerArray) aColorArray;
   if ( !aLabel.FindAttribute( TDataStd_IntegerArray::GetID(), aColorArray ) )
+  {
     aColorArray = TDataStd_IntegerArray::Set( aLabel, 1, 4 );
+    aColorArray->SetID(TDataStd_IntegerArray::GetID());
+  }
 
   aColorArray->SetValue( 1, theColor.red()   );
   aColorArray->SetValue( 2, theColor.green() );
@@ -872,6 +885,7 @@ void HYDROData_Entity::SetShape( int theTag, const TopoDS_Shape& theShape )
 {
   TNaming_Builder aBuilder( myLab.FindChild( theTag ) );
   aBuilder.Generated( theShape );
+  aBuilder.NamedShape()->SetID(TNaming_NamedShape::GetID());
 }
 
 TopoDS_Shape HYDROData_Entity::GetShape( int theTag ) const
@@ -891,7 +905,11 @@ void HYDROData_Entity::SetDouble( int theTag, double theValue )
   Handle(TDataStd_Real) anAttr;
   TDF_Label aLabel = myLab.FindChild( theTag );
   if( !aLabel.FindAttribute( TDataStd_Real::GetID(), anAttr ) )
-    aLabel.AddAttribute( anAttr = new TDataStd_Real() );
+  {
+    anAttr = new TDataStd_Real();
+    anAttr->SetID(TDataStd_Real::GetID());
+    aLabel.AddAttribute( anAttr );
+  }
   anAttr->Set( theValue );
 }
 
@@ -910,7 +928,11 @@ void HYDROData_Entity::SetInteger( int theTag, int theValue )
   Handle(TDataStd_Integer) anAttr;
   TDF_Label aLabel = myLab.FindChild( theTag );
   if( !aLabel.FindAttribute( TDataStd_Integer::GetID(), anAttr ) )
-    aLabel.AddAttribute( anAttr = new TDataStd_Integer() );
+  {
+    anAttr = new TDataStd_Integer();
+    anAttr->SetID(TDataStd_Integer::GetID());
+    aLabel.AddAttribute(anAttr);
+  }
   anAttr->Set( theValue );
 }