Salome HOME
PR: synchro V6_main tag mergeto_V7_main_11Feb13
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_HypothesesUtils.cxx
index a0986ce5d21bc78c2f5d1d190ac0a5504df09dd1..b52f7308e83f86ff1b7e8e002882c836dc1d9b38 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -74,7 +74,7 @@
 #endif
 
 #ifdef _DEBUG_
-static int MYDEBUG = 0;
+static int MYDEBUG = 1;
 #else
 static int MYDEBUG = 0;
 #endif
@@ -282,6 +282,7 @@ namespace SMESH
     THypothesisDataMap::ConstIterator anIter;
     for ( anIter = pMap.begin(); anIter != pMap.end(); anIter++ ) {
       HypothesisData* aData = anIter.value();
+      if(!aData || aData->Label.isEmpty()) continue;
       if ( ( theDim < 0 || aData->Dim.contains( theDim ) ) && aData->IsAux == isAux) {
         if (checkGeometry) {
           if (aData->IsNeedGeometry == isNeedGeometry)
@@ -419,13 +420,13 @@ namespace SMESH
         LibHandle libHandle = LoadLib( aClientLibName.toLatin1().data() );
         if (!libHandle) {
           // report any error, if occured
-          if ( MYDEBUG ) {
+          {
 #ifdef WIN32
             const char* anError = "Can't load client meshers plugin library";
 #else
             const char* anError = dlerror();      
 #endif
-            MESSAGE(anError);
+            INFOS(anError); // always display this kind of error !
           }
         }
         else {
@@ -450,6 +451,12 @@ namespace SMESH
               // map hypothesis creator to a hypothesis name
               // BUG 0020378
               //myHypCreatorMap[aHypType] = aCreator;
+
+              //rnv : This dynamic property of the QObject stores the name of the plugin.
+              //      It is used to obtain plugin root dir environment variable
+              //      in the SMESHGUI_HypothesisDlg class. Plugin root dir environment 
+              //      variable is used to display documentation.
+              aCreator->setProperty(PLUGIN_NAME,aHypData->PluginName);
             }
           }
         }
@@ -605,23 +612,21 @@ namespace SMESH
     return res < SMESH::HYP_UNKNOWN_FATAL;
   }
 
-  bool RemoveHypothesisOrAlgorithmOnMesh (_PTR(SObject) MorSM,
+  bool RemoveHypothesisOrAlgorithmOnMesh (_PTR(SObject)               MorSM,
                                           SMESH::SMESH_Hypothesis_ptr anHyp)
   {
-    SALOMEDS::GenericAttribute_var anAttr;
-    SALOMEDS::AttributeIOR_var anIOR;
     int res = SMESH::HYP_UNKNOWN_FATAL;
     SUIT_OverrideCursor wc;
 
     if (MorSM) {
       try {
         GEOM::GEOM_Object_var aShapeObject = SMESH::GetShapeOnMeshOrSubMesh(MorSM);
-        SMESH::SMESH_Mesh_var aMesh = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>(MorSM);
-        SMESH::SMESH_subMesh_var aSubMesh = SMESH::SObjectToInterface<SMESH::SMESH_subMesh>(MorSM);
-        
+        SMESH::SMESH_Mesh_var aMesh        = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>(MorSM);
+        SMESH::SMESH_subMesh_var aSubMesh  = SMESH::SObjectToInterface<SMESH::SMESH_subMesh>(MorSM);
+
         if (!aSubMesh->_is_nil())
           aMesh = aSubMesh->GetFather();
-        
+
         if (!aMesh->_is_nil()) {    
           if (aMesh->HasShapeToMesh() && !aShapeObject->_is_nil()) {
             res = aMesh->RemoveHypothesis(aShapeObject, anHyp);