From: imn Date: Wed, 20 Jan 2016 14:33:43 +0000 (+0300) Subject: INT PAL 0053067: Algorithm disable in "Edit mesh" dialog X-Git-Tag: V8_0_0rc1~5^2~3 X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=commitdiff_plain;h=18dade91d06a5b9964bb5604dbfdbc0ff4deef0a INT PAL 0053067: Algorithm disable in "Edit mesh" dialog --- diff --git a/src/SMESHGUI/SMESHGUI_MeshOp.cxx b/src/SMESHGUI/SMESHGUI_MeshOp.cxx index cda44524c..fb05a8471 100644 --- a/src/SMESHGUI/SMESHGUI_MeshOp.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshOp.cxx @@ -1504,6 +1504,7 @@ void SMESHGUI_MeshOp::onAlgoSelected( const int theIndex, QString anCompareType = currentMeshTypeName(myDlg->currentMeshType()); bool is2dtype = ( anCompareType == "QUAD" ) || ( anCompareType == "TRIA" ); int dim = is2dtype ? SMESH::DIM_2D : SMESH::DIM_3D; + dim = ( myMaxShapeDim < dim ) ? myMaxShapeDim : dim; for (int i = dim; i >= SMESH::DIM_0D; i--) { if ( i != aDim ) { if ( algoData && algoData->InputTypes.isEmpty() ) { @@ -2746,18 +2747,14 @@ void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI setCurrentHyp( dim, Algo, anCurrentAvailableAlgo ); } - if ( aDim == SMESH::DIM_2D) { - myDlg->disableTab( SMESH::DIM_3D ); - setCurrentHyp( SMESH::DIM_3D, Algo, -1); - } - for ( int i = myMaxShapeDim; i > SMESH::DIM_0D; i-- ) { + for ( int i = myMaxShapeDim; i >= SMESH::DIM_0D; i-- ) { bool isNoneAlg = currentHyp( i, Algo ) < 0; if ( !isNoneAlg ) isReqDisBound = myAvailableHypData[i][Algo].at( currentHyp( i, Algo ) )->InputTypes.isEmpty(); else isReqDisBound = true; - if ( isReqDisBound && !isNoneAlg) { - for (int j = i; j >= SMESH::DIM_0D; j--) { + if ( isReqDisBound && !isNoneAlg && i <= aDim) { + for (int j = myMaxShapeDim; j >= SMESH::DIM_0D; j--) { if ( currentHyp( j, Algo ) < 0 ) { myDlg->disableTab( j ); setCurrentHyp( j , Algo, -1 ); @@ -2765,7 +2762,15 @@ void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI } break; } + else { + myDlg->enableTab( i ); + } } + if ( aDim == SMESH::DIM_2D) { + myDlg->disableTab( SMESH::DIM_3D ); + setCurrentHyp( SMESH::DIM_3D, Algo, -1); + } + int currentTab = ( theTabIndex <= aDim ) ? theTabIndex : aDim; myDlg->setCurrentTab( currentTab ); }