Salome HOME
IPAL21265 It's impossible to select edge for Reverce in Arithmetic 1D Hypothesis...
authordmv <dmv@opencascade.com>
Wed, 22 Jul 2009 07:33:31 +0000 (07:33 +0000)
committerdmv <dmv@opencascade.com>
Wed, 22 Jul 2009 07:33:31 +0000 (07:33 +0000)
src/SMESHGUI/SMESHGUI_MeshOp.cxx
src/StdMeshersGUI/StdMeshersGUI_EdgeDirectionParamWdg.cxx

index f34871254654c7adab62363e53208ebada027235..35dcb43bab4e2b490942d53eb175ccab031ac676 100644 (file)
@@ -1066,14 +1066,17 @@ void SMESHGUI_MeshOp::createHypothesis (const int theDim,
       int obj = myDlg->getActiveObject();
       removeCustomFilters(); // Issue 0020170
 
       int obj = myDlg->getActiveObject();
       removeCustomFilters(); // Issue 0020170
 
-      // Set Geometry
-      QStringList aList;
-      myDlg->selectedObject( SMESHGUI_MeshDlg::Geom, aList );
-      if (aList.count() != 0)
-       aCreator->setShapeEntry( aList.first() );
-      else
-       aCreator->setShapeEntry( QString() );
-      
+      // Get Entry of the Geom object
+      QString anObjEntry = "";
+      anObjEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Geom );
+      if ( anObjEntry == "" ) {
+       anObjEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Obj );
+        _PTR(SObject) pObj = studyDS()->FindObjectID( anObjEntry.toLatin1().data() );
+        GEOM::GEOM_Object_var aGeomVar = SMESH::GetShapeOnMeshOrSubMesh( pObj );
+       anObjEntry = aGeomVar->GetStudyEntry();
+      }
+
+      aCreator->setShapeEntry( anObjEntry );
       myDlg->setEnabled( false );
       aCreator->create(initParamHyp, aHypName, myDlg);
       onActivateObject( obj ); // Issue 0020170. Restore filters
       myDlg->setEnabled( false );
       aCreator->create(initParamHyp, aHypName, myDlg);
       onActivateObject( obj ); // Issue 0020170. Restore filters
@@ -1129,14 +1132,17 @@ void SMESHGUI_MeshOp::onEditHyp( const int theHypType, const int theIndex )
       getInitParamsHypothesis( aHyp->GetName(), aHyp->GetLibName());
     aCreator->setInitParamsHypothesis( initParamHyp );
 
       getInitParamsHypothesis( aHyp->GetName(), aHyp->GetLibName());
     aCreator->setInitParamsHypothesis( initParamHyp );
 
-    // Set Geometry
-    QStringList aList;
-    myDlg->selectedObject( SMESHGUI_MeshDlg::Geom, aList );
-    if (aList.count() > 0)
-      aCreator->setShapeEntry( aList.first() );
-    else
-      aCreator->setShapeEntry( "" );
+    // Get Entry of the Geom object
+    QString anObjEntry = "";
+    anObjEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Geom );
+    if ( anObjEntry == "" ) {
+      anObjEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Obj );
+      _PTR(SObject) pObj = studyDS()->FindObjectID( anObjEntry.toLatin1().data() );
+      GEOM::GEOM_Object_var aGeomVar = SMESH::GetShapeOnMeshOrSubMesh( pObj );
+      anObjEntry = aGeomVar->GetStudyEntry();
+    }
 
 
+    aCreator->setShapeEntry( anObjEntry );
     int obj = myDlg->getActiveObject();
     removeCustomFilters(); // Issue 0020170
     myDlg->setEnabled( false );
     int obj = myDlg->getActiveObject();
     removeCustomFilters(); // Issue 0020170
     myDlg->setEnabled( false );
index 01b64b3a4010be8f21de4bd98a6462ceab2ea2dd..89c4ca47abe88448e6e4793b3eaddec95ee48125 100644 (file)
@@ -201,7 +201,7 @@ void StdMeshersGUI_EdgeDirectionParamWdg::SelectionIntoArgument()
       if ( !CORBA::is_nil( aGeomFatherObj ) ) {
        // Get Main Shape
        GEOM::GEOM_Object_var aGeomMain = GetGeomObjectByEntry( myEntry );
       if ( !CORBA::is_nil( aGeomFatherObj ) ) {
        // Get Main Shape
        GEOM::GEOM_Object_var aGeomMain = GetGeomObjectByEntry( myEntry );
-       if ( !CORBA::is_nil( aGeomMain ) || aGeomMain->GetType() == 37 ) {  // Main Shape is a Group
+       if ( !CORBA::is_nil( aGeomMain ) && aGeomMain->GetType() == 37 ) {  // Main Shape is a Group
          GEOM::GEOM_Object_ptr aMainFatherObj = aGeomMain->GetMainShape();
          if ( !CORBA::is_nil( aMainFatherObj ) )
            aMainFatherEntry = aMainFatherObj->GetStudyEntry();
          GEOM::GEOM_Object_ptr aMainFatherObj = aGeomMain->GetMainShape();
          if ( !CORBA::is_nil( aMainFatherObj ) )
            aMainFatherEntry = aMainFatherObj->GetStudyEntry();