Salome HOME
PAL10953. Use GUI to create hypothesis from a hypotheses set T_Before_Join_BR_3_1_0deb
authoreap <eap@opencascade.com>
Mon, 26 Dec 2005 10:43:09 +0000 (10:43 +0000)
committereap <eap@opencascade.com>
Mon, 26 Dec 2005 10:43:09 +0000 (10:43 +0000)
src/SMESHGUI/SMESHGUI_MeshOp.cxx

index 9c5f9be..716d21e 100644 (file)
@@ -632,6 +632,7 @@ void SMESHGUI_MeshOp::onHypoSet( const QString& theSetName )
     {
       const QString& aHypoTypeName = (*aHypoList)[ i ];
       HypothesisData* aHypData = SMESH::GetHypothesisData( aHypoTypeName );
     {
       const QString& aHypoTypeName = (*aHypoList)[ i ];
       HypothesisData* aHypData = SMESH::GetHypothesisData( aHypoTypeName );
+      if ( !aHypData ) continue;
       int aDim = aHypData->Dim[0];
       // create or/and set
       int index = -1;
       int aDim = aHypData->Dim[0];
       // create or/and set
       int index = -1;
@@ -657,12 +658,23 @@ void SMESHGUI_MeshOp::onHypoSet( const QString& theSetName )
         }
         if ( index >= 0 ) // found
         {
         }
         if ( index >= 0 ) // found
         {
+          // select an algorithm
           setCurrentHyp ( aDim, aHypType, index );
         }
         else
         {
           setCurrentHyp ( aDim, aHypType, index );
         }
         else
         {
-          // silently create a hypothesis
-          SMESH::CreateHypothesis( aHypoTypeName, aHypData->Label, isAlgo );
+          // create a hypothesis
+          QString aClientLibName = aHypData->ClientLibName;
+          if ( aClientLibName == "" ) {
+            // Call hypothesis creation server method (without GUI)
+            SMESH::CreateHypothesis( aHypoTypeName, aHypData->Label, isAlgo );
+          }
+          else {
+            // Get hypotheses creator client (GUI)
+            SMESHGUI_GenericHypothesisCreator* aCreator =
+              SMESH::GetHypothesisCreator( aHypoTypeName );
+            aCreator->CreateHypothesis( false, myDlg );
+          }
           QStringList aNewHyps;
           _PTR(SComponent) aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
           existingHyps( aDim, aHypType, aFather, aNewHyps, aList );
           QStringList aNewHyps;
           _PTR(SComponent) aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
           existingHyps( aDim, aHypType, aFather, aNewHyps, aList );