From ed17a7699645b67cca4e07dec57a9a6d4b6bba06 Mon Sep 17 00:00:00 2001 From: gdd Date: Wed, 27 Apr 2011 12:40:02 +0000 Subject: [PATCH] rnc: Modified "Number Of Segment" window so that the use of table density is more convenient. --- .../StdMeshersGUI_DistrPreview.cxx | 13 +++- .../StdMeshersGUI_DistrTable.cxx | 41 +++++------ .../StdMeshersGUI_NbSegmentsCreator.cxx | 70 ++++++++++--------- .../StdMeshersGUI_SubShapeSelectorWdg.cxx | 2 +- src/StdMeshersGUI/StdMeshers_msg_en.ts | 2 +- src/StdMeshersGUI/StdMeshers_msg_fr.ts | 4 +- 6 files changed, 71 insertions(+), 61 deletions(-) diff --git a/src/StdMeshersGUI/StdMeshersGUI_DistrPreview.cxx b/src/StdMeshersGUI/StdMeshersGUI_DistrPreview.cxx index fb4937417..7befe2048 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_DistrPreview.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_DistrPreview.cxx @@ -78,7 +78,7 @@ StdMeshersGUI_DistrPreview::StdMeshersGUI_DistrPreview( QWidget* p, StdMeshers:: QwtText mt = myMsg->label(); mt.setBackgroundPen( QPen( Qt::red, 1 ) ); QFont f = mt.font(); - f.setPointSize( 14 ); f.setBold( true ); + f.setPointSize( 14 ); //f.setBold( true ); mt.setFont( f ); myMsg->setLabel( mt ); myDensity->setPen( QPen( Qt::red, 1 ) ); @@ -94,6 +94,17 @@ StdMeshersGUI_DistrPreview::StdMeshersGUI_DistrPreview( QWidget* p, StdMeshers:: } insertLegend( l, QwtPlot::BottomLegend ); + enableAxis(QwtPlot::yLeft, false); + enableAxis(QwtPlot::yRight, true); + + QFont axisFont; + axisFont.setPointSize( 8 ); + setAxisFont(QwtPlot::yRight, axisFont); + setAxisFont(QwtPlot::xBottom, axisFont); + + myDensity->setYAxis(QwtPlot::yRight); + myDistr->setYAxis(QwtPlot::yRight); + myMsg->setYAxis(QwtPlot::yRight); myDensity->setTitle( tr( "SMESH_DENSITY_FUNC" ) ); myDistr->setTitle( tr( "SMESH_DISTR" ) ); diff --git a/src/StdMeshersGUI/StdMeshersGUI_DistrTable.cxx b/src/StdMeshersGUI/StdMeshersGUI_DistrTable.cxx index 7963dbe36..28e664096 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_DistrTable.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_DistrTable.cxx @@ -31,6 +31,7 @@ // Qt incldues #include #include +#include #include #include #include @@ -244,6 +245,8 @@ Table( QWidget* parent, int rows ) QStringList labs; labs << "t" << "f(t)"; setHorizontalHeaderLabels( labs ); + this->horizontalHeader()->setStretchLastSection(true); + this->horizontalHeader()->setDefaultSectionSize(60); while( rows-- ) addRow(); @@ -412,14 +415,14 @@ sizeHint() const if( cachedSizeHint().isValid() ) return cachedSizeHint(); - QSize sh = QTableWidget::sizeHint(); - if( sh.width() < 400 ) - sh.setWidth( 400 ); - if( sh.height() < 200 ) - sh.setHeight( 200 ); - - setCachedSizeHint( sh ); - return sh; +// QSize sh = QTableWidget::sizeHint(); +// if( sh.width() < 400 ) +// sh.setWidth( 400 ); +// if( sh.height() < 200 ) +// sh.setHeight( 200 ); +// +// setCachedSizeHint( sh ); +// return sh; } void @@ -507,30 +510,24 @@ StdMeshersGUI_DistrTableFrame:: StdMeshersGUI_DistrTableFrame( QWidget* parent ) : QWidget( parent ) { - QVBoxLayout* main = new QVBoxLayout( this ); + QGridLayout* main = new QGridLayout( this ); main->setMargin( 0 ); main->setSpacing( 0 ); // --- myTable = new Table( this ); connect( myTable, SIGNAL( valueChanged( int, int ) ), this, SIGNAL( valueChanged( int, int ) ) ); - - // --- - QWidget* aButFrame = new QWidget( this ); - QHBoxLayout* butLay = new QHBoxLayout( aButFrame ); - butLay->setContentsMargins( 0, SPACING, 0, SPACING ); - butLay->setSpacing( SPACING ); - myButtons[ InsertRowBtn ] = new QPushButton( tr( "SMESH_INSERT_ROW" ), aButFrame ); - myButtons[ RemoveRowBtn ] = new QPushButton( tr( "SMESH_REMOVE_ROW" ), aButFrame ); + myButtons[ InsertRowBtn ] = new QPushButton( tr( "SMESH_INSERT_ROW" ), this ); + myButtons[ RemoveRowBtn ] = new QPushButton( tr( "SMESH_REMOVE_ROW" ), this ); - butLay->addWidget( myButtons[ InsertRowBtn ] ); - butLay->addWidget( myButtons[ RemoveRowBtn ] ); - butLay->addStretch(); // --- - main->addWidget( myTable ); - main->addWidget( aButFrame ); + main->addWidget( myTable , 0, 0, 1, 3); + main->addWidget( myButtons[ InsertRowBtn ] , 1, 0); + main->addWidget( myButtons[ RemoveRowBtn ] , 1, 1); + main->setColumnStretch(2, 1); + main->setSpacing( SPACING ); // --- connect( myButtons[ InsertRowBtn ], SIGNAL( clicked() ), this, SLOT( onInsert() ) ); diff --git a/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.cxx b/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.cxx index 9fce3fe98..ed50c1944 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.cxx @@ -98,6 +98,7 @@ bool StdMeshersGUI_NbSegmentsCreator::checkParams( QString& msg ) const QFrame* StdMeshersGUI_NbSegmentsCreator::buildFrame() { QFrame* fr = new QFrame(); + fr->setMinimumWidth(460); QVBoxLayout* lay = new QVBoxLayout( fr ); lay->setMargin( 0 ); @@ -108,7 +109,6 @@ QFrame* StdMeshersGUI_NbSegmentsCreator::buildFrame() StdMeshers::StdMeshers_NumberOfSegments_var h = StdMeshers::StdMeshers_NumberOfSegments::_narrow( hypothesis() ); - myPreview = new StdMeshersGUI_DistrPreview( GroupC1, h.in() ); myGroupLayout = new QGridLayout( GroupC1 ); myGroupLayout->setSpacing( SPACING ); @@ -127,6 +127,7 @@ QFrame* StdMeshersGUI_NbSegmentsCreator::buildFrame() row++; } + // 1) number of segments myGroupLayout->addWidget( new QLabel( tr( "SMESH_NB_SEGMENTS_PARAM" ), GroupC1 ), row, 0 ); myNbSeg = new SalomeApp_IntSpinBox( GroupC1 ); @@ -135,6 +136,7 @@ QFrame* StdMeshersGUI_NbSegmentsCreator::buildFrame() myGroupLayout->addWidget( myNbSeg, row, 1 ); row++; + // 2) type of distribution myGroupLayout->addWidget( new QLabel( tr( "SMESH_DISTR_TYPE" ), GroupC1 ), row, 0 ); myDistr = new QtxComboBox( GroupC1 ); @@ -147,6 +149,7 @@ QFrame* StdMeshersGUI_NbSegmentsCreator::buildFrame() myGroupLayout->addWidget( myDistr, row, 1 ); row++; + // 3) scale myGroupLayout->addWidget( myLScale = new QLabel( tr( "SMESH_NB_SEGMENTS_SCALE_PARAM" ), GroupC1 ), row, 0 ); myScale = new SMESHGUI_SpinBox( GroupC1 ); @@ -154,25 +157,35 @@ QFrame* StdMeshersGUI_NbSegmentsCreator::buildFrame() myGroupLayout->addWidget( myScale, row, 1 ); row++; - myInfo = new QLabel( tr( "SMESH_FUNC_DOMAIN" ), GroupC1 ); - myGroupLayout->addWidget( myInfo, row, 0, 1, 2 ); - row++; - // 4) table - myGroupLayout->addWidget( myLTable = new QLabel( tr( "SMESH_TAB_FUNC" ), GroupC1 ), row, 0 ); - myTable = new StdMeshersGUI_DistrTableFrame( GroupC1 ); - myGroupLayout->addWidget( myTable, row, 1 ); + // 4) Distribution definition + QGridLayout* myDistLayout = new QGridLayout(GroupC1); + myGroupLayout->addLayout( myDistLayout, row, 0, 1, 2 ); myGroupLayout->setRowStretch( row, 1 ); - myTableRow = row; - row++; + row ++; - // 5) expression - myGroupLayout->addWidget( myLExpr = new QLabel( tr( "SMESH_EXPR_FUNC" ), GroupC1 ), row, 0 ); + // a) expression + QHBoxLayout* myExprLayout = new QHBoxLayout(GroupC1); + myExprLayout->addWidget( myLExpr = new QLabel( "f(t)=", GroupC1 ), 0); myExpr = new QLineEdit( GroupC1 ); - myGroupLayout->addWidget( myExpr, row, 1 ); - row++; + myExprLayout->addWidget( myExpr,1); + myDistLayout->addLayout(myExprLayout,1 ,0); + myDistLayout->setRowStretch(2, 1); + + // b) warning + myInfo = new QLabel( tr( "SMESH_FUNC_DOMAIN" ), GroupC1 ); + myDistLayout->addWidget( myInfo, 0, 0, 1, 2); + + // c) table + myTable = new StdMeshersGUI_DistrTableFrame( GroupC1 ); + myDistLayout->addWidget( myTable, 1, 0, 2, 1 ); - // 6) conversion (radiogroup) + // d) preview + myPreview = new StdMeshersGUI_DistrPreview( GroupC1, h.in() ); + myPreview->setMinimumHeight(220); + myDistLayout->addWidget( myPreview, 1, 1, 2, 1 ); + + // 5) conversion (radiogroup) myConvBox = new QGroupBox( tr( "SMESH_CONV_MODE" ), GroupC1 ); myConv = new QButtonGroup( GroupC1 ); @@ -191,17 +204,12 @@ QFrame* StdMeshersGUI_NbSegmentsCreator::buildFrame() myGroupLayout->addWidget( myConvBox, row, 0, 1, 2 ); row++; - // 7) distribution preview - myGroupLayout->addWidget( myPreview, row, 0, 1, 2 ); - myGroupLayout->setRowStretch( row, 1 ); - myPreviewRow = row; - row++; - // 8) reverce edge parameters + // 6) reverse edge parameters myReversedEdgesBox = new QGroupBox(tr( "SMESH_REVERSED_EDGES" ), fr); QHBoxLayout* edgeLay = new QHBoxLayout( myReversedEdgesBox ); - myDirectionWidget = new StdMeshersGUI_SubShapeSelectorWdg(); + myDirectionWidget = new StdMeshersGUI_SubShapeSelectorWdg( myReversedEdgesBox ); QString aGeomEntry = getShapeEntry(); QString aMainEntry = getMainShapeEntry(); if ( aGeomEntry == "" ) @@ -212,7 +220,9 @@ QFrame* StdMeshersGUI_NbSegmentsCreator::buildFrame() edgeLay->addWidget( myDirectionWidget ); lay->addWidget( myReversedEdgesBox ); - + lay->setStretchFactor( GroupC1, 2); + lay->setStretchFactor( myReversedEdgesBox, 1); + connect( myNbSeg, SIGNAL( valueChanged( const QString& ) ), this, SLOT( onValueChanged() ) ); connect( myDistr, SIGNAL( activated( int ) ), this, SLOT( onValueChanged() ) ); connect( myTable, SIGNAL( valueChanged( int, int ) ), this, SLOT( onValueChanged() ) ); @@ -428,20 +438,12 @@ void StdMeshersGUI_NbSegmentsCreator::onValueChanged() bool isFunc = distr==2 || distr==3; myPreview->setShown( isFunc ); - myGroupLayout->setRowStretch( myPreviewRow, isFunc ? 1 : 0 ); - myConvBox->setShown( isFunc ); - - if( distr==2 ) - myTable->show(); - else - myTable->hide(); - myLTable->setShown( distr==2 ); - myGroupLayout->setRowStretch( myTableRow, distr==2 ? 1 : 0 ); - + + myTable->setShown( distr==2 ); myExpr->setShown( distr==3 ); myLExpr->setShown( distr==3 ); - myInfo->setShown( isFunc ); + myInfo->setShown( distr==3); //change of preview int nbSeg = myNbSeg->value(); diff --git a/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.cxx b/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.cxx index a51d6a16d..31136803d 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.cxx @@ -102,7 +102,7 @@ StdMeshersGUI_SubShapeSelectorWdg edgesLayout->addWidget(myAddButton, 0, 4); edgesLayout->addWidget(myRemoveButton, 1, 4); - edgesLayout->setRowStretch(2, 5); + //edgesLayout->setRowStretch(2, 5); edgesLayout->setColumnStretch(2, 5); setLayout( edgesLayout ); diff --git a/src/StdMeshersGUI/StdMeshers_msg_en.ts b/src/StdMeshersGUI/StdMeshers_msg_en.ts index 584ecc01c..203913c5d 100644 --- a/src/StdMeshersGUI/StdMeshers_msg_en.ts +++ b/src/StdMeshersGUI/StdMeshers_msg_en.ts @@ -77,7 +77,7 @@ SMESH_EXPR_FUNC - Density function f(t) = + Density function SMESH_EXP_MODE diff --git a/src/StdMeshersGUI/StdMeshers_msg_fr.ts b/src/StdMeshersGUI/StdMeshers_msg_fr.ts index 0642c5ba1..1f2374414 100755 --- a/src/StdMeshersGUI/StdMeshers_msg_fr.ts +++ b/src/StdMeshersGUI/StdMeshers_msg_fr.ts @@ -77,7 +77,7 @@ SMESH_EXPR_FUNC - Expression de la densité f(t) = + Expression de la densité SMESH_EXP_MODE @@ -89,7 +89,7 @@ SMESH_FUNC_DOMAIN - Avertissement: il faut définir la fonction sur le segment [0..1] + Avertissement: La fonction doit ếtre définie sur le segment [0..1] SMESH_INSERT_ROW -- 2.39.2