Salome HOME
projects
/
modules
/
smesh.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
bd36472
)
INT PAL 0052727: Fitering algorithms according to geometry does not work in Create...
author
imn
<imn@opencascade.com>
Tue, 9 Jun 2015 09:06:53 +0000
(12:06 +0300)
committer
imn
<imn@opencascade.com>
Tue, 9 Jun 2015 09:06:53 +0000
(12:06 +0300)
src/SMESHGUI/SMESHGUI_MeshOp.cxx
patch
|
blob
|
history
diff --git
a/src/SMESHGUI/SMESHGUI_MeshOp.cxx
b/src/SMESHGUI/SMESHGUI_MeshOp.cxx
index 67408d72002239ff23c172e0279a38d0556016d9..708e7f40d032a21540087d1cdc3929c7fc047ef6 100644
(file)
--- a/
src/SMESHGUI/SMESHGUI_MeshOp.cxx
+++ b/
src/SMESHGUI/SMESHGUI_MeshOp.cxx
@@
-1496,14
+1496,20
@@
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 ( 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)
- availableHyps( dim, Algo, anAvailable, myAvailableHypData[dim][Algo], 0 );
+ anAvailable.clear();
+ for (int i = 0; i < myFilteredAlgoData[dim].count(); ++i) {
+ HypothesisData* aCurAlgo = myFilteredAlgoData[dim][ i ];
+ anAvailable.append( aCurAlgo->Label );
+ }
}
myDlg->tab( dim )->setAvailableHyps( Algo, anAvailable );
noCompatible = anAvailable.isEmpty();
// restore previously selected algo
}
myDlg->tab( dim )->setAvailableHyps( Algo, anAvailable );
noCompatible = anAvailable.isEmpty();
// restore previously selected algo
- algoIndex = myAvailableHypData[dim][Algo].indexOf( curAlgo );
+ if (dim == aTopDim && prevAlgo)
+ 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 );
if ( !isSubmesh && algoIndex < 0 && soleCompatible && !forward && dim != SMESH::DIM_0D)
// select the sole compatible algo
algoIndex = myAvailableHypData[dim][Algo].indexOf( soleCompatible );
@@
-2646,6
+2652,7
@@
void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI
algoCur = myAvailableHypData[dim][Algo].at( currentHyp( dim, Algo ) );
}
myAvailableHypData[dim][Algo].clear();
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() ||
anAvailableAlgs.clear();
if ( dim != SMESH::DIM_2D || currentHyp( SMESH::DIM_3D, Algo ) < 0 ||
myAvailableHypData[SMESH::DIM_3D][Algo].empty() ||
@@
-2659,6
+2666,7
@@
void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI
{
anAvailableAlgs.append( curAlgo->Label );
myAvailableHypData[dim][Algo].append( curAlgo );
{
anAvailableAlgs.append( curAlgo->Label );
myAvailableHypData[dim][Algo].append( curAlgo );
+ myFilteredAlgoData[dim].append( curAlgo );
}
}
if ( !isNone && algoCur ) {
}
}
if ( !isNone && algoCur ) {