Salome HOME
0020082: EDF 869 GEOM : Edges Orientation indicator/reverse
authordmv <dmv@opencascade.com>
Tue, 15 Sep 2009 14:16:35 +0000 (14:16 +0000)
committerdmv <dmv@opencascade.com>
Tue, 15 Sep 2009 14:16:35 +0000 (14:16 +0000)
src/SMESHGUI/SMESHGUI_MeshOp.cxx
src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.cxx

index 310f34d..ef2f015 100644 (file)
@@ -1085,7 +1085,8 @@ void SMESHGUI_MeshOp::createHypothesis(const int theDim,
       if ( aMeshEntry == "" && aGeomEntry == "" ) {
         _PTR(SObject) pObj = studyDS()->FindObjectID( anObjEntry.toLatin1().data() );
         GEOM::GEOM_Object_var aGeomVar = SMESH::GetShapeOnMeshOrSubMesh( pObj );
-        aGeomEntry = aGeomVar->GetStudyEntry();
+        if ( !aGeomVar->_is_nil() )
+          aGeomEntry = aGeomVar->GetStudyEntry();
       }
 
       if ( anObjEntry != "" && aGeomEntry != "" && aMeshEntry == "" ) { // take geometry from submesh
@@ -1099,7 +1100,8 @@ void SMESHGUI_MeshOp::createHypothesis(const int theDim,
             if ( !aMeshVar->_is_nil() ) {
               _PTR(SObject) aMeshSO = SMESH::FindSObject( aMeshVar );
               GEOM::GEOM_Object_var aGeomVar = SMESH::GetShapeOnMeshOrSubMesh( aMeshSO );
-              aMeshEntry = aGeomVar->GetStudyEntry();
+              if ( !aGeomVar->_is_nil() )
+                aMeshEntry = aGeomVar->GetStudyEntry();
             }
           }
         }
@@ -1206,7 +1208,8 @@ void SMESHGUI_MeshOp::onEditHyp( const int theHypType, const int theIndex )
     if ( aMeshEntry == "" && aGeomEntry == "" ) {
       _PTR(SObject) pObj = studyDS()->FindObjectID( anObjEntry.toLatin1().data() );
       GEOM::GEOM_Object_var aGeomVar = SMESH::GetShapeOnMeshOrSubMesh( pObj );
-      aGeomEntry = aGeomVar->GetStudyEntry();
+      if ( !aGeomVar->_is_nil() )
+        aGeomEntry = aGeomVar->GetStudyEntry();
     }
 
     if ( anObjEntry != "" && aGeomEntry != "" && aMeshEntry == "" ) { // take geometry from submesh
@@ -1220,7 +1223,8 @@ void SMESHGUI_MeshOp::onEditHyp( const int theHypType, const int theIndex )
           if ( !aMeshVar->_is_nil() ) {
             _PTR(SObject) aMeshSO = SMESH::FindSObject( aMeshVar );
             GEOM::GEOM_Object_var aGeomVar = SMESH::GetShapeOnMeshOrSubMesh( aMeshSO );
-            aMeshEntry = aGeomVar->GetStudyEntry();
+            if ( !aGeomVar->_is_nil() )
+              aMeshEntry = aGeomVar->GetStudyEntry();
           }
         }
       }
index 0705f57..ba9bd7e 100644 (file)
@@ -475,8 +475,10 @@ const char* StdMeshersGUI_SubShapeSelectorWdg::GetMainShapeEntry()
 //=================================================================================
 QList<int> StdMeshersGUI_SubShapeSelectorWdg::GetCorrectedListOfIDs( bool fromSubshapeToMainshape )
 {
-  if ( myMainShape.IsNull() || myGeomShape.IsNull() )
+  if ( ( myMainShape.IsNull() || myGeomShape.IsNull() ) &&  fromSubshapeToMainshape )
     return myListOfIDs;
+  else   if ( ( myMainShape.IsNull() || myGeomShape.IsNull() ) &&  !fromSubshapeToMainshape )
+    return mySelectedIDs;
 
   QList<int> aList;
   TopTools_IndexedMapOfShape   aGeomMap;