]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
Implementation of the "20830: EDF 1357 GUI : Hide/Show Icon"
authorrnv <rnv@opencascade.com>
Thu, 17 Feb 2011 07:58:57 +0000 (07:58 +0000)
committerrnv <rnv@opencascade.com>
Thu, 17 Feb 2011 07:58:57 +0000 (07:58 +0000)
(at the moment implemeted only in GEOM and SMESH modules).

src/SALOMEDS/SALOMEDS_Study_i.cxx
src/SALOMEDSImpl/SALOMEDSImpl_AttributeIOR.cxx
src/SALOMEDSImpl/SALOMEDSImpl_Callback.hxx
src/SALOMEDSImpl/SALOMEDSImpl_GenericAttribute.cxx
src/SALOMEDSImpl/SALOMEDSImpl_GenericAttribute.hxx
src/SALOMEDSImpl/SALOMEDSImpl_Study.cxx
src/SALOMEDSImpl/SALOMEDSImpl_Study.hxx
src/SALOMEDSImpl/SALOMEDSImpl_StudyBuilder.cxx

index 5832eaa4c76849e3d70bd4991c1d8680193a0f74..9bee45f3279e065e7100d6b49ea0020b1211d68f 100644 (file)
@@ -104,7 +104,7 @@ Notifier(CORBA::ORB_ptr orb)
  */
 //============================================================================
 
-  virtual bool modifySO_Notification(const SALOMEDSImpl_SObject& theSObject)
+  virtual bool modifySO_Notification(const SALOMEDSImpl_SObject& theSObject, int reason)
     {
       for (ObsListIter it (myObservers.begin()); it != myObservers.end(); ++it)
         {
@@ -112,7 +112,7 @@ Notifier(CORBA::ORB_ptr orb)
             {
               std::string anID=theSObject.GetID();
               const char* cID=anID.c_str();
-              it->first->notifyObserverID(cID,0);
+              it->first->notifyObserverID(cID,reason);
             }
         }
       return true; // NGE return always true but can be modified if needed
index 668e1a142a8695878e0e50c99a3147b93c946a4d..5bdef1d9b3f5c5c45735b490ac11b25787b6f4b3 100644 (file)
@@ -138,6 +138,10 @@ void SALOMEDSImpl_AttributeIOR::SetValue(const std::string& 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
+  SetModifyFlag(5);
 }
 
 //=======================================================================
index 906403c97928ddad955eaaf31f33fd0e7ccd54d1..5d196209b42ecf93b3c82ad963f53fe1a465f740 100644 (file)
@@ -59,6 +59,6 @@ class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AbstractCallback
 public:
   virtual bool addSO_Notification(const SALOMEDSImpl_SObject& theSObject){return false;};
   virtual bool removeSO_Notification(const SALOMEDSImpl_SObject& theSObject){return false;};
-  virtual bool modifySO_Notification(const SALOMEDSImpl_SObject& theSObject){return false;};
+  virtual bool modifySO_Notification(const SALOMEDSImpl_SObject& theSObject, int reason ){return false;};
 };
 #endif
index 7f3544df177709df37fa0454c62008c7296e9ded..0e5321c24cdd6c036a797ded5436f50f52a15ff3 100644 (file)
@@ -79,13 +79,16 @@ SALOMEDSImpl_SObject SALOMEDSImpl_GenericAttribute::GetSObject()
   return SALOMEDSImpl_Study::SObject(aLabel);
 }
 
-void SALOMEDSImpl_GenericAttribute::SetModifyFlag()
+/*!
+ * Set modification flag of the Attribute.
+ * param reason reason of the modification (by default equal to 0)
+ */
+void SALOMEDSImpl_GenericAttribute::SetModifyFlag(int reason)
 {
    DF_Label aLabel = Label();
    if(aLabel.IsNull()) return; 
 
   SALOMEDSImpl_Study* aStudy = SALOMEDSImpl_Study::GetStudy(aLabel);
-  if(aStudy) aStudy->modifySO_Notification(GetSObject());
+  if(aStudy) aStudy->modifySO_Notification(GetSObject(), reason);
   if(aStudy) aStudy->Modify();
 }
-
index 45b0b83ce22c806e5ef890c299e105f922db2cf5..293aa4c57c8c973d57520dd8dd98c2ef690d2324 100644 (file)
@@ -51,7 +51,7 @@ public:
   virtual void CheckLocked();
   std::string GetClassType() { return _type; }
   SALOMEDSImpl_SObject GetSObject();
-  void SetModifyFlag();
+  void SetModifyFlag(int reason = 0);
 
   static std::string Impl_GetType(DF_Attribute* theAttr); 
   static std::string Impl_GetClassType(DF_Attribute* theAttr);
index 0e4a3db6f18a2492fc2ef57ee32f1678cb14135b..a3450207ef287298ba7542de6bd8b204ea26dc42 100644 (file)
@@ -2017,13 +2017,14 @@ bool SALOMEDSImpl_Study::removeSO_Notification (const SALOMEDSImpl_SObject& theS
 
 //============================================================================
 /*! Function : modifySO_Notification
- *  Purpose  : This function tells all the observers that a SO has been modified
+ *  Purpose  : This function tells all the observers that a SO has been modified and
+               pass the mofification reason
  */
 //============================================================================
-bool SALOMEDSImpl_Study::modifySO_Notification (const SALOMEDSImpl_SObject& theSObject) 
+bool SALOMEDSImpl_Study::modifySO_Notification (const SALOMEDSImpl_SObject& theSObject, int reason
 {
   if(_notifier)
-    return _notifier->modifySO_Notification(theSObject);
+    return _notifier->modifySO_Notification(theSObject, reason);
   else
     return false;
 }
index 0731d3ab3de08c4bfc7f7e55077415b376214942..a257da08e4224286ac489a50b56868c2accbf264 100644 (file)
@@ -317,7 +317,7 @@ public:
   // Notification mechanism
   virtual bool addSO_Notification(const SALOMEDSImpl_SObject& theSObject);
   virtual bool removeSO_Notification(const SALOMEDSImpl_SObject& theSObject);
-  virtual bool modifySO_Notification(const SALOMEDSImpl_SObject& theSObject);
+  virtual bool modifySO_Notification(const SALOMEDSImpl_SObject& theSObject, int reason);
   virtual void setNotifier(SALOMEDSImpl_AbstractCallback* notifier);
 
 
index 60d9ff07e768415b41ac0e4816152172859d3219..f02b2bd946bea9b8c8e2ffaf8c0cf0473cce4249 100644 (file)
@@ -556,7 +556,7 @@ bool SALOMEDSImpl_StudyBuilder::RemoveAttribute(const SALOMEDSImpl_SObject& anOb
   Lab.ForgetAttribute (SALOMEDSImpl_SObject::GetGUID(aTypeOfAttribute));
     
   _doc->SetModified(true);  
-  _study->modifySO_Notification(anObject);
+  _study->modifySO_Notification(anObject,0);
     
   return true;
 }