X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_MeshOp.cxx;h=ff98510088ead389874ccd87465f2a6b73ff0816;hb=bf4083bfeee4e1ae00e16e8643d501cb8ff9142c;hp=67408d72002239ff23c172e0279a38d0556016d9;hpb=53a2fb6d670a8c71eb30dfa339447a25cd728e80;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_MeshOp.cxx b/src/SMESHGUI/SMESHGUI_MeshOp.cxx index 67408d720..ff9851008 100644 --- a/src/SMESHGUI/SMESHGUI_MeshOp.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshOp.cxx @@ -1496,14 +1496,24 @@ void SMESHGUI_MeshOp::onAlgoSelected( const int theIndex, if ( anAvailable.count() == 1 ) soleCompatible = myAvailableHypData[dim][Algo][0]; if ( dim == aTopDim && prevAlgo ) {// all available algoritms should be selectable any way - if (myDlg->currentMeshType() == MT_ANY) + if (aTopDim == SMESH::DIM_2D) { + anAvailable.clear(); + for (int i = 0; i < myFilteredAlgoData[dim].count(); ++i) { + HypothesisData* aCurAlgo = myFilteredAlgoData[dim][ i ]; + anAvailable.append( aCurAlgo->Label ); + } + } + if (aTopDim == SMESH::DIM_3D) availableHyps( dim, Algo, anAvailable, myAvailableHypData[dim][Algo], 0 ); } myDlg->tab( dim )->setAvailableHyps( Algo, anAvailable ); noCompatible = anAvailable.isEmpty(); // restore previously selected algo - algoIndex = myAvailableHypData[dim][Algo].indexOf( curAlgo ); + if (dim == aTopDim && prevAlgo && aTopDim == SMESH::DIM_2D) + algoIndex = myFilteredAlgoData[dim].indexOf( curAlgo ); + else + algoIndex = myAvailableHypData[dim][Algo].indexOf( curAlgo ); if ( !isSubmesh && algoIndex < 0 && soleCompatible && !forward && dim != SMESH::DIM_0D) // select the sole compatible algo algoIndex = myAvailableHypData[dim][Algo].indexOf( soleCompatible ); @@ -2646,6 +2656,7 @@ void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI algoCur = myAvailableHypData[dim][Algo].at( currentHyp( dim, Algo ) ); } myAvailableHypData[dim][Algo].clear(); + myFilteredAlgoData[dim].clear(); anAvailableAlgs.clear(); if ( dim != SMESH::DIM_2D || currentHyp( SMESH::DIM_3D, Algo ) < 0 || myAvailableHypData[SMESH::DIM_3D][Algo].empty() || @@ -2659,6 +2670,7 @@ void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI { anAvailableAlgs.append( curAlgo->Label ); myAvailableHypData[dim][Algo].append( curAlgo ); + myFilteredAlgoData[dim].append( curAlgo ); } } if ( !isNone && algoCur ) {