#include <QtxIntSpinBox.h>
#include <QtxComboBox.h>
+#include <QtxDblValidator.h>
#include <SMESHGUI_SpinBox.h>
#include <qlabel.h>
myConv->setColumnLayout( 0, Qt::Vertical );
QGridLayout* convLay = new QGridLayout( myConv->layout() );
convLay->addWidget( new QRadioButton( tr( "SMESH_EXP_MODE" ), myConv ), 0, 0 );
- convLay->addWidget( new QRadioButton( tr( "SMESH_CUT_NEG_MODE" ), myConv ), 1, 0 );
+ convLay->addWidget( myCutNeg = new QRadioButton( tr( "SMESH_CUT_NEG_MODE" ), myConv ), 1, 0 );
myGroupLayout->addWidget( myConv, row, 1 );
row++;
myExpr->setText( data.myExpr );
}
-void StdMeshersGUI_NbSegmentsCreator::storeParams() const
+QString StdMeshersGUI_NbSegmentsCreator::storeParams() const
{
NbSegmentsHypothesisData data;
readParamsFromWidgets( data );
storeParamsToHypo( data );
+
+ QString valStr = QString::number( data.myNbSeg ) += "; ";
+
+ enum DistrType
+ {
+ Regular, //!< equidistant distribution
+ Scale, //!< scale distribution
+ TabFunc, //!< distribution with density function presented by table
+ ExprFunc //!< distribution with density function presented by expression
+ };
+ bool hasConv = false;
+ switch ( data.myDistrType ) {
+ case Regular :
+ valStr += tr("SMESH_DISTR_REGULAR");
+ break;
+ case Scale :
+ valStr += tr("SMESH_NB_SEGMENTS_SCALE_PARAM") + " = " + QString::number( data.myScale );
+ break;
+ case TabFunc : {
+ //valStr += tr("SMESH_TAB_FUNC");
+ bool param = true;
+ for( int i=0; i < data.myTable.length(); i++, param = !param ) {
+ if ( param )
+ valStr += "[";
+ valStr += QString::number( data.myTable[ i ]);
+ valStr += ( param ? "," : "]" );
+ }
+ hasConv = true;
+ break;
+ }
+ case ExprFunc:
+ valStr += data.myExpr;
+ hasConv = true;
+ break;
+ }
+ if ( hasConv )
+ if ( data.myConv )
+ valStr += "; " + tr("SMESH_CUT_NEG_MODE");
+ else
+ valStr += "; " + tr("SMESH_EXP_MODE");
+
+ return valStr;
}
bool StdMeshersGUI_NbSegmentsCreator::readParamsFromHypo( NbSegmentsHypothesisData& h_data ) const
{
StdMeshers::StdMeshers_NumberOfSegments_var h =
- StdMeshers::StdMeshers_NumberOfSegments::_narrow( hypothesis() );
+ StdMeshers::StdMeshers_NumberOfSegments::_narrow( initParamsHypothesis() );
HypothesisData* data = SMESH::GetHypothesisData( hypType() );
h_data.myName = isCreation() && data ? data->Label : "";
{
int distr = myDistr->currentItem();
+/* if( distr==2 ) //table func
+ myCutNeg->setText( tr( "SMESH_NO_CONV" ) );
+ else if( distr==3 )
+ myCutNeg->setText( tr( "SMESH_CUT_NEG_MODE" ) );*/
+
+ if( distr==2 && sender()==myConv ) //table func
+ {
+ myTable->table()->funcValidator()->setBottom( myConv->id( myConv->selected() )==0 ? -1E20 : 0 );
+ SMESH::double_array arr;
+ myTable->table()->data( arr );
+ myTable->table()->setData( arr ); //update data in table
+ }
+
myScale->setShown( distr==1 );
myLScale->setShown( distr==1 );