52451: "Assign a set of hypotheses" is disabled by mistake

This commit is contained in:
imn 2014-07-16 16:46:27 +04:00
parent 80fe1ddefc
commit b5a71c53ed

View File

@ -1396,7 +1396,6 @@ void SMESHGUI_MeshOp::onAlgoSelected( const int theIndex,
const bool isSubmesh = ( myToCreate ? !myIsMesh : myDlg->isObjectShown( SMESHGUI_MeshDlg::Mesh )); const bool isSubmesh = ( myToCreate ? !myIsMesh : myDlg->isObjectShown( SMESHGUI_MeshDlg::Mesh ));
// if ( aDim >= SMESH::DIM_2D ) myAvailableHypData[ aDim ][ Algo ] = myFilteredAlgoData[aDim];
HypothesisData* algoData = hypData( aDim, Algo, theIndex ); HypothesisData* algoData = hypData( aDim, Algo, theIndex );
HypothesisData* algoByDim[4]; HypothesisData* algoByDim[4];
algoByDim[ aDim ] = algoData; algoByDim[ aDim ] = algoData;
@ -2568,7 +2567,7 @@ void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI
if ( anCompareType == "ANY" ) if ( anCompareType == "ANY" )
{ {
for ( int dim = SMESH::DIM_2D; dim <= SMESH::DIM_3D; dim++ ) for ( int dim = SMESH::DIM_3D; dim >= SMESH::DIM_2D; dim-- )
{ {
isNone = currentHyp( dim, Algo ) < 0; isNone = currentHyp( dim, Algo ) < 0;
isAvailableChoiceAlgo = false; isAvailableChoiceAlgo = false;
@ -2581,6 +2580,10 @@ void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI
} }
myAvailableHypData[dim][Algo].clear(); myAvailableHypData[dim][Algo].clear();
anAvailableAlgs.clear(); anAvailableAlgs.clear();
if ( dim != SMESH::DIM_2D || currentHyp( SMESH::DIM_3D, Algo ) < 0 ||
myAvailableHypData[SMESH::DIM_3D][Algo].empty() ||
!myAvailableHypData[SMESH::DIM_3D][Algo].at( currentHyp( SMESH::DIM_3D, Algo ) )->InputTypes.isEmpty() )
{
for (int i = 0 ; i < anAvailableAlgsData.count(); i++) for (int i = 0 ; i < anAvailableAlgsData.count(); i++)
{ {
HypothesisData* curAlgo = anAvailableAlgsData.at(i); HypothesisData* curAlgo = anAvailableAlgsData.at(i);
@ -2606,6 +2609,7 @@ void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI
isAvailableChoiceAlgo = true; isAvailableChoiceAlgo = true;
anCurrentAvailableAlgo = currentHyp( dim, Algo ); anCurrentAvailableAlgo = currentHyp( dim, Algo );
} }
}
myDlg->tab( dim )->setAvailableHyps( Algo, anAvailableAlgs ); myDlg->tab( dim )->setAvailableHyps( Algo, anAvailableAlgs );
if ( isAvailableChoiceAlgo ) if ( isAvailableChoiceAlgo )
setCurrentHyp( dim, Algo, anCurrentAvailableAlgo ); setCurrentHyp( dim, Algo, anCurrentAvailableAlgo );
@ -2730,6 +2734,18 @@ void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI
{ {
for (int i = SMESH::DIM_0D; i <= myMaxShapeDim; i++) for (int i = SMESH::DIM_0D; i <= myMaxShapeDim; i++)
{ {
if ( myAvailableHypData[i][Algo].count() == 0 ) {
availableHyps( i, Algo, anAvailableAlgs, anAvailableAlgsData );
for ( int i = 0 ; i < anAvailableAlgsData.count(); i++ )
{
HypothesisData* aCurAlgo = anAvailableAlgsData.at( i );
if ( aCurAlgo->Label == algoDataIn->Label ){
isAvailable = true;
break;
}
}
}
else {
for (int j = 0; j < myAvailableHypData[i][Algo].count(); ++j) { for (int j = 0; j < myAvailableHypData[i][Algo].count(); ++j) {
HypothesisData* aCurAlgo = hypData( i, Algo, j ); HypothesisData* aCurAlgo = hypData( i, Algo, j );
if ( aCurAlgo->Label == algoDataIn->Label ){ if ( aCurAlgo->Label == algoDataIn->Label ){
@ -2737,6 +2753,7 @@ void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI
break; break;
} }
} }
}
if ( isAvailable ) break; if ( isAvailable ) break;
} }
if ( !isAvailable ) break; if ( !isAvailable ) break;