X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Hypotheses.cxx;h=521966bf7980d3941279a6ad2247371e311f3b28;hp=db3aa0e4813d4535adadc0412775fdb651bc26fb;hb=70eb9c09d00f9c4b0e48d5aba70676e45e779f9c;hpb=6d32f944a0a115b6419184c50b57bf7c4eef5786 diff --git a/src/SMESHGUI/SMESHGUI_Hypotheses.cxx b/src/SMESHGUI/SMESHGUI_Hypotheses.cxx index db3aa0e48..521966bf7 100644 --- a/src/SMESHGUI/SMESHGUI_Hypotheses.cxx +++ b/src/SMESHGUI/SMESHGUI_Hypotheses.cxx @@ -27,10 +27,11 @@ #include "SMESHGUI.h" #include "SMESHGUI_HypothesesUtils.h" -#include "SMESHGUI_Utils.h" #include "SMESHGUI_SpinBox.h" +#include "SMESHGUI_Utils.h" #include "SMESHGUI_VTKUtils.h" #include "SMESH_Actor.h" +#include "SMESH_TypeDefs.hxx" // SALOME KERNEL includes #include @@ -147,10 +148,14 @@ void SMESHGUI_GenericHypothesisCreator::editHypothesis( SMESH::SMESH_Hypothesis_ Dlg->setWindowTitle( caption() ); Dlg->setObjectName( theHypName ); Dlg->setHIcon( icon() ); - Dlg->setType( type() ); + if ( theHypName == HypothesesSet::getCommonHypoSetHypoType() ) + Dlg->setType( tr( HypothesesSet::getCommonHypoSetHypoType()) ); + else + Dlg->setType( type() ); retrieveParams(); - Dlg->show(); + Dlg->show(); // w/o this Dlg blocks selection Dlg->resize( Dlg->minimumSizeHint() ); + Dlg->exec(); // w/o this we cant wait until edition ends when applying a hypo-set } else { emit finished( QDialog::Accepted ); @@ -180,10 +185,11 @@ QFrame* SMESHGUI_GenericHypothesisCreator::buildStdFrame() GroupC1Layout->setMargin( MARGIN ); ListOfStdParams::const_iterator anIt = params.begin(), aLast = params.end(); - for( int i=0; anIt!=aLast; anIt++, i++ ) + for( int i = 0; anIt != aLast; anIt++, i++ ) { - QLabel* lab = new QLabel( (*anIt).myName, GroupC1 ); - GroupC1Layout->addWidget( lab, i, 0 ); + QLabel* lab = anIt->hasName() ? new QLabel( anIt->myName, GroupC1 ) : NULL; + if ( lab ) + GroupC1Layout->addWidget( lab, i, 0 ); myParamLabels << lab; QWidget* w = getCustomWidget( *anIt, GroupC1, i ); @@ -246,9 +252,12 @@ QFrame* SMESHGUI_GenericHypothesisCreator::buildStdFrame() default:; } // switch( (*anIt).myValue.type() ) - if( w ) + if ( w ) { - GroupC1Layout->addWidget( w, i, 1 ); + if ( lab ) + GroupC1Layout->addWidget( w, i, 1 ); + else + GroupC1Layout->addWidget( w, i, 0, 1, 2 ); changeWidgets().append( w ); } } @@ -489,7 +498,7 @@ SMESHGUI_GenericHypothesisCreator::ListOfWidgets& SMESHGUI_GenericHypothesisCrea //================================================================================ /*! - * \brief Returns a QLabel of a spesified parameter. + * \brief Returns a QLabel of a specified parameter. * If isCreation(), the 1st label (supposed to be "Name") is not countered. */ //================================================================================ @@ -671,6 +680,14 @@ SMESHGUI_HypothesisDlg::~SMESHGUI_HypothesisDlg() delete myCreator; } +void SMESHGUI_HypothesisDlg::showEvent(QShowEvent *event) +{ + // resize( minimumSizeHint() ); + // adjustSize(); + + QtxDialog::showEvent( event ); +} + void SMESHGUI_HypothesisDlg::setCustomFrame( QFrame* f ) { if( f ) @@ -779,32 +796,44 @@ HypothesisData::HypothesisData( const QString& theTypeName, { } -HypothesesSet::HypothesesSet( const QString& theSetName ) - : myHypoSetName( theSetName ), - myIsAlgo( false ), - myIsCustom( false ) -{ -} - -HypothesesSet::HypothesesSet( const QString& theSetName, - const QStringList& theHypoList, - const QStringList& theAlgoList ) - : myHypoSetName( theSetName ), - myHypoList( theHypoList ), - myAlgoList( theAlgoList ), +// HypothesesSet::HypothesesSet( const QString& theSetName ) +// : myHypoSetName( theSetName ), +// myIsAlgo( false ), +// myIsCustom( false ) +// { +// } + +HypothesesSet::HypothesesSet( const QString& theSetName, + bool useCommonSize, bool isQuadDominated, + const QStringList& mainHypos, const QStringList& mainAlgos, + const QStringList& altHypos, const QStringList& altAlgos, + const QStringList& intHypos, const QStringList& intAlgos ) + : myUseCommonSize( useCommonSize ), + myQuadDominated( isQuadDominated ), + myHypoSetName( theSetName ), + myHypoList { mainHypos, altHypos, intHypos }, + myAlgoList { mainAlgos, altAlgos, intAlgos }, myIsAlgo( false ), - myIsCustom( false ) + myIsCustom( false ), + myIndex( 0 ) { + for ( myHypType = MAIN; myHypType < NB_HYP_TYPES; SMESHUtils::Increment( myHypType )) + for ( int isAlgo = myIsAlgo = 0; isAlgo < 2; myIsAlgo = ++isAlgo ) + { + QStringList& hyps = *list(); + for ( int i = 0; i < hyps.count(); ++i ) + hyps[ i ] = hyps[ i ].trimmed(); + } } -QStringList* HypothesesSet::list(bool is_algo) const +QStringList* HypothesesSet::list( bool is_algo, SetType setType) const { - return const_cast( &( is_algo ? myAlgoList : myHypoList ) ); + return const_cast( &( is_algo ? myAlgoList[setType] : myHypoList[setType] )); } QStringList* HypothesesSet::list() const { - return list( myIsAlgo ); + return list( myIsAlgo, myHypType ); } QString HypothesesSet::name() const @@ -812,25 +841,26 @@ QString HypothesesSet::name() const return myHypoSetName; } -void HypothesesSet::set( bool isAlgo, const QStringList& lst ) -{ - *list(isAlgo) = lst; -} +// void HypothesesSet::set( bool isAlgo, const QStringList& lst ) +// { +// *list(isAlgo) = lst; +// } -int HypothesesSet::count( bool isAlgo ) const -{ - return list(isAlgo)->count(); -} +// int HypothesesSet::count( bool isAlgo, SetType setType ) const +// { +// return list(isAlgo,setType)->count(); +// } -bool HypothesesSet::isAlgo() const -{ - return myIsAlgo; -} +// bool HypothesesSet::isAlgo() const +// { +// return myIsAlgo; +// } -void HypothesesSet::init( bool isAlgo ) +void HypothesesSet::init( bool isAlgo, SetType setType ) { + myHypType = setType; myIsAlgo = isAlgo; - myIndex = -1; + myIndex = 0; } bool HypothesesSet::more() const @@ -858,17 +888,43 @@ bool HypothesesSet::getIsCustom() const return myIsCustom; } +void HypothesesSet::setAlgoAvailable( SetType type, bool isAvailable ) +{ + if ( MAIN <= type && type < NB_HYP_TYPES ) + myIsAlgoAvailable[ type ] = isAvailable; +} + +bool HypothesesSet::getAlgoAvailable( SetType type ) +{ + bool isAva = false; + if ( MAIN <= type && type < NB_HYP_TYPES ) + isAva = myIsAlgoAvailable[ type ]; + return isAva; +} + +HypothesesSet::SetType HypothesesSet::getPreferredHypType() +{ + SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + int useAltHypos = !resMgr->booleanValue( "SMESH", "use-meshgems-hypo-sets", false ); + return ( HypothesesSet::SetType ) useAltHypos; +} + int HypothesesSet::maxDim() const { HypothesesSet * thisSet = (HypothesesSet*) this; int dim = -1; - for ( int isAlgo = 0; isAlgo < 2; ++isAlgo ) - { - thisSet->init( isAlgo ); - while ( thisSet->next(), thisSet->more() ) - if ( HypothesisData* hypData = SMESH::GetHypothesisData( thisSet->current() )) - for ( int i = 0; i < hypData->Dim.count(); ++i ) - dim = qMax( dim, hypData->Dim[i] ); - } + for ( int setType = 0; setType < 2; ++setType ) + for ( int isAlgo = 0; isAlgo < 2; ++isAlgo ) + { + for ( thisSet->init( isAlgo, SetType( setType )); thisSet->more(); thisSet->next() ) + if ( HypothesisData* hypData = SMESH::GetHypothesisData( thisSet->current() )) + for ( int i = 0; i < hypData->Dim.count(); ++i ) + dim = qMax( dim, hypData->Dim[i] ); + } return dim; } + +const char* HypothesesSet::getCommonHypoSetHypoType() +{ + return "AverageLengthForHypoSet"; +}