]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
Now study declared as being modifyed after change variables.
authorrnv <rnv@opencascade.com>
Wed, 19 Nov 2008 17:15:32 +0000 (17:15 +0000)
committerrnv <rnv@opencascade.com>
Wed, 19 Nov 2008 17:15:32 +0000 (17:15 +0000)
src/SALOMEDSImpl/SALOMEDSImpl_GenericVariable.cxx
src/SALOMEDSImpl/SALOMEDSImpl_GenericVariable.hxx
src/SALOMEDSImpl/SALOMEDSImpl_ScalarVariable.cxx
src/SALOMEDSImpl/SALOMEDSImpl_ScalarVariable.hxx
src/SALOMEDSImpl/SALOMEDSImpl_Study.cxx

index e266329c4a9b221f8871a2f64f9b5ae3337bb54d..7de967c2ceb13f8880a7abe4410ae7585d0ceaaa 100644 (file)
@@ -75,9 +75,13 @@ string SALOMEDSImpl_GenericVariable::Name() const
  *  Purpose  : 
  */
 //============================================================================
-void SALOMEDSImpl_GenericVariable::setType(const SALOMEDSImpl_GenericVariable::VariableTypes theType)
+bool SALOMEDSImpl_GenericVariable::setType(const SALOMEDSImpl_GenericVariable::VariableTypes theType)
 {
+  if(_type == theType)
+    return false;
+
   _type = theType;
+  return true;
 }
 
 //============================================================================
@@ -85,44 +89,15 @@ void SALOMEDSImpl_GenericVariable::setType(const SALOMEDSImpl_GenericVariable::V
  *  Purpose  : 
  */
 //============================================================================
-void SALOMEDSImpl_GenericVariable::setName(const std::string& theName)
+bool SALOMEDSImpl_GenericVariable::setName(const std::string& theName)
 {
-  _name = theName;
-}
+  if(_name.compare(theName) == 0)
+    return false;
 
-//============================================================================
-/*! Function : CheckLocked
- *  Purpose  : 
- */
-//============================================================================
-void SALOMEDSImpl_GenericVariable::CheckLocked()
-{
-  DF_Label aLabel = DF_Label();
-  if(aLabel.IsNull()) return;
-
-  SALOMEDSImpl_Study* aStudy = SALOMEDSImpl_Study::GetStudy(aLabel);
-  if(!aStudy) return;
-  if(aStudy->IsLocked()) {
-    aStudy->_errorCode = "LockProtection";
-    throw LockProtection("LockProtection");
-  }                                         
-}
-
-//============================================================================
-/*! Function : SetModifyFlag
- *  Purpose  : 
- */
-//============================================================================
-void SALOMEDSImpl_GenericVariable::SetModifyFlag()
-{
-  DF_Label aLabel = DF_Label();
-  if(aLabel.IsNull()) return; 
-  
-  SALOMEDSImpl_Study* aStudy = SALOMEDSImpl_Study::GetStudy(aLabel);
-  if(aStudy) aStudy->Modify();
+  _name = theName;
+  return true;
 }
 
-
 //============================================================================
 /*! Function : String2VariableType
  *  Purpose  : 
index c5166f2174b07e3b6e85f26388a3f1d8a72535a6..5dc385cc08e738b7fe2db454bc374af5da9817de 100644 (file)
@@ -46,13 +46,9 @@ class SALOMEDSIMPL_EXPORT SALOMEDSImpl_GenericVariable
 
   static VariableTypes String2VariableType(const std::string& theStrType);
   
-  void setType(const VariableTypes theType);
+  bool setType(const VariableTypes theType);
 
-  void setName(const std::string& theName);
-
-  virtual void CheckLocked();
-  
-  virtual void SetModifyFlag();
+  bool setName(const std::string& theName);
 
   virtual std::string Save() const;
   virtual std::string SaveToScript() const;
index 683dbbf16932fac061ab3d6ed32e2fca8ad02ca5..c6fa46c825d1fb7708637ca4042a991ddc80d185 100644 (file)
@@ -49,16 +49,14 @@ SALOMEDSImpl_ScalarVariable::~SALOMEDSImpl_ScalarVariable(){}
  *  Purpose  : 
  */
 //============================================================================
-void SALOMEDSImpl_ScalarVariable::setValue(const double theValue)
+bool SALOMEDSImpl_ScalarVariable::setValue(const double theValue)
 {
-  CheckLocked();
   
   if(myValue == theValue) 
-    return;
+    return false;
   
   myValue = theValue;
-  
-  SetModifyFlag();
+  return true;
 }
 
 //============================================================================
index b13ddeed2348221e5eac4060e3aadbe6fd3a2541..9684f6e06add3e81e93dec022375f41fb00eefd7 100644 (file)
@@ -35,7 +35,7 @@ public:
                               const std::string& theName);
   ~SALOMEDSImpl_ScalarVariable();
   
-  void setValue(const double theValue);
+  bool setValue(const double theValue);
   double getValue() const;
 
   virtual std::string Save() const;
index dca7d19da386367d08fbfeb038a412e634ba680a..8b4a1fd409891ee0a7e28e074203468ded711173 100644 (file)
@@ -1554,7 +1554,7 @@ void SALOMEDSImpl_Study::SetVariable(const string& theVarName,
                                      const double theValue,
                                      const SALOMEDSImpl_GenericVariable::VariableTypes theType)
 {
+  bool modified = false;
   SALOMEDSImpl_GenericVariable* aGVar = GetVariable(theVarName);
   
   if( aGVar == NULL ) {
@@ -1563,14 +1563,16 @@ void SALOMEDSImpl_Study::SetVariable(const string& theVarName,
 
     aSVar->setValue(theValue);
     myNoteBookVars.push_back(aSVar);
+    modified = true;
   }
   else {
     if(SALOMEDSImpl_ScalarVariable* aSVar = dynamic_cast<SALOMEDSImpl_ScalarVariable*>(aGVar)) {
-      aSVar->setValue(theValue);
-      if(aSVar->Type() != theType)
-        aSVar->setType(theType);
+      modified = aSVar->setValue(theValue) || modified;
+      modified = aSVar->setType(theType) || modified;
     }
   }
+  if(modified)
+    Modify();
 }
 
 //============================================================================
@@ -1680,6 +1682,7 @@ bool SALOMEDSImpl_Study::RemoveVariable(const string& theVarName)
     if( aVariableRef && theVarName.compare( aVariableRef->Name() ) == 0 )
     {
       myNoteBookVars.erase( it );
+      Modify();
       break;
     }
   }
@@ -1707,6 +1710,7 @@ bool SALOMEDSImpl_Study::RenameVariable(const string& theVarName, const string&
     if( aVariableRef && theVarName.compare( aVariableRef->Name() ) == 0 )
     {
       aVariableRef->setName( theNewVarName );
+      Modify();
       break;
     }
   }