X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FVISUGUI%2FVisuGUI_IsoSurfacesDlg.cxx;h=e1a65458a27b6184a7ce70ea8a804594cf2cc964;hb=de799091f3bde871c887d0bf34f9f5f1c9146de8;hp=5977d5eedade169bf1cba5ec63ed8ed146881563;hpb=17b175ff4b710fc93421509ffa7583edd1678a5d;p=modules%2Fvisu.git diff --git a/src/VISUGUI/VisuGUI_IsoSurfacesDlg.cxx b/src/VISUGUI/VisuGUI_IsoSurfacesDlg.cxx index 5977d5ee..e1a65458 100644 --- a/src/VISUGUI/VisuGUI_IsoSurfacesDlg.cxx +++ b/src/VISUGUI/VisuGUI_IsoSurfacesDlg.cxx @@ -37,65 +37,149 @@ #include #include +#include + using namespace std; -/*! - Constructor -*/ -VisuGUI_IsoSurfacesDlg::VisuGUI_IsoSurfacesDlg() - : QDialog( QAD_Application::getDesktop(), "VisuGUI_IsoSurfacesDlg", true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ) + +VisuGUI_IsoSurfPane::VisuGUI_IsoSurfPane(QWidget* parent) + : QVBox(parent) { - setCaption( tr( "Iso Surfaces Definition" ) ); - setSizeGripEnabled( TRUE ); - - QGridLayout* TopLayout = new QGridLayout( this ); - TopLayout->setSpacing( 6 ); - TopLayout->setMargin( 11 ); - - QGroupBox* TopGroup = new QGroupBox( this, "TopGroup" ); - TopGroup->setColumnLayout(0, Qt::Vertical ); - TopGroup->layout()->setSpacing( 0 ); - TopGroup->layout()->setMargin( 0 ); - QGridLayout* TopGroupLayout = new QGridLayout( TopGroup->layout() ); + QFrame* TopGroup = new QFrame( this, "TopGroup" ); + TopGroup->setFrameStyle(QFrame::Box | QFrame::Sunken); + TopGroup->setLineWidth(1); + + QGridLayout* TopGroupLayout = new QGridLayout(TopGroup); TopGroupLayout->setAlignment( Qt::AlignTop ); TopGroupLayout->setSpacing( 6 ); TopGroupLayout->setMargin( 11 ); + QLabel* LabelNbr = new QLabel( tr( "Number of surfaces:" ), TopGroup, "LabelNbr" ); + TopGroupLayout->addWidget( LabelNbr, 0, 0 ); + NbrIso = new QSpinBox( 1, 100, 1, TopGroup, "NbrIso" ); + NbrIso->setValue( 1 ); + TopGroupLayout->addWidget( NbrIso, 0, 1 ); + QLabel* LabelMin = new QLabel( tr( "Minimum value:" ), TopGroup, "LabelMin" ); - TopGroupLayout->addWidget( LabelMin, 0, 0 ); + TopGroupLayout->addWidget( LabelMin, 1, 0 ); //MinIso = new QAD_SpinBoxDbl( TopGroup, -DBL_MAX, DBL_MAX, 0.1 ); MinIso = new QLineEdit( TopGroup ); - MinIso->setValidator( new QDoubleValidator(this) ); + MinIso->setValidator( new QDoubleValidator(TopGroup) ); MinIso->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); MinIso->setMinimumSize( 70, 0 ); LabelMin->setBuddy(MinIso); - TopGroupLayout->addWidget( MinIso, 0, 1 ); + TopGroupLayout->addWidget( MinIso, 1, 1 ); QLabel* LabelMax = new QLabel( tr( "Maximum value:" ), TopGroup, "LabelMax" ); - TopGroupLayout->addWidget( LabelMax, 1, 0 ); + TopGroupLayout->addWidget( LabelMax, 2, 0 ); //MaxIso = new QAD_SpinBoxDbl( TopGroup, -DBL_MAX, DBL_MAX, 0.1); MaxIso = new QLineEdit( TopGroup ); - MaxIso->setValidator( new QDoubleValidator(this) ); + MaxIso->setValidator( new QDoubleValidator(TopGroup) ); MaxIso->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); MaxIso->setMinimumSize( 70, 0 ); LabelMax->setBuddy(MaxIso); - TopGroupLayout->addWidget( MaxIso, 1, 1 ); + TopGroupLayout->addWidget( MaxIso, 2, 1 ); - CBUpdate = new QCheckBox ( tr( "Update scalar bar with these values" ), TopGroup); - CBUpdate->setSizePolicy( QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed) ); - TopGroupLayout->addMultiCellWidget( CBUpdate, 4, 4, 0, 1); - CBUpdate->setChecked(true); - CBLog = new QCheckBox ( tr( "Logarithmic scaling" ), TopGroup); - CBLog->setSizePolicy( QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed) ); - TopGroupLayout->addMultiCellWidget( CBLog, 3, 3, 0, 1); +// CBUpdate = new QCheckBox ( tr( "Update scalar bar with these values" ), TopGroup); +// CBUpdate->setSizePolicy( QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed) ); +// TopGroupLayout->addMultiCellWidget( CBUpdate, 4, 4, 0, 1); +// CBUpdate->setChecked(false); + QPushButton* aUpdateBtn = new QPushButton( "Update scalar bar range with these values", TopGroup); + TopGroupLayout->addMultiCellWidget( aUpdateBtn, 3, 3, 0, 1); + connect( aUpdateBtn, SIGNAL( clicked() ), this, SLOT(onCBUpdate() ) ); - QLabel* LabelNbr = new QLabel( tr( "Number of surfaces:" ), TopGroup, "LabelNbr" ); - TopGroupLayout->addWidget( LabelNbr, 2, 0 ); - NbrIso = new QSpinBox( 1, 100, 1, TopGroup, "NbrIso" ); - NbrIso->setValue( 1 ); - TopGroupLayout->addWidget( NbrIso, 2, 1 ); +// CBLog = new QCheckBox ( tr( "Logarithmic scaling" ), TopGroup); +// CBLog->setSizePolicy( QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed) ); +// TopGroupLayout->addMultiCellWidget( CBLog, 3, 3, 0, 1); + +} + + + +void VisuGUI_IsoSurfPane::initFromPrsObject(VISU::IsoSurfaces_i* thePrs) { + NbrIso->setValue(thePrs->GetNbSurfaces()); + MinIso->setText(QString::number(thePrs->GetSubMin())); + MaxIso->setText(QString::number(thePrs->GetSubMax())); +// switch(thePrs->GetScaling()){ +// case VISU::LOGARITHMIC : +// CBLog->setChecked(true); +// break; +// default: +// CBLog->setChecked(false); +// } +} + +int VisuGUI_IsoSurfPane::storeToPrsObject(VISU::IsoSurfaces_i* thePrs) { + thePrs->SetNbSurfaces(NbrIso->value()); + thePrs->SetSubRange(MinIso->text().toDouble(), MaxIso->text().toDouble()); + return 1; +// if (CBUpdate->isChecked()) +// { +// thePrs->SetRange(MinIso->text().toDouble(), MaxIso->text().toDouble()); +// if (CBLog->isChecked()) +// thePrs->SetScaling(VISU::LOGARITHMIC); +// else +// thePrs->SetScaling(VISU::LINEAR); +// } +} + +void VisuGUI_IsoSurfPane::onCBUpdate() +{ + // if (CBUpdate->isChecked()) { + myScalarPane->setRange(MinIso->text().toDouble(), MaxIso->text().toDouble(), true); + // } +// CBLog->setDisabled(false); +// else CBLog->setDisabled(true); +} + + +bool VisuGUI_IsoSurfPane::check() { + if (MinIso->text().toDouble() >= MaxIso->text().toDouble()) { + MESSAGE(tr("MSG_MINMAX_VALUES")); + QAD_MessageBox::warn1( this,tr("VISU_WARNING"), + tr("MSG_MINMAX_VALUES"), + tr("VISU_BUT_OK")); + return false; + } // else if (/* CBUpdate->isChecked() && CBLog->isChecked() && */ +// (MinIso->text().toDouble() <=0 || MaxIso->text().toDouble() <=0) ) { +// QAD_MessageBox::warn1( this, +// tr("VISU_WARNING"), +// tr("WRN_LOGARITHMIC_RANGE_ISOSURF"), +// tr("VISU_BUT_OK")); +// return false; +// } + return true; +} + + + + + +/*! + Constructor +*/ +VisuGUI_IsoSurfacesDlg::VisuGUI_IsoSurfacesDlg() + : QDialog( QAD_Application::getDesktop(), "VisuGUI_IsoSurfacesDlg", true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ) +{ + setCaption( tr( "Iso Surfaces Definition" ) ); + setSizeGripEnabled( TRUE ); + + QVBoxLayout* TopLayout = new QVBoxLayout(this); + TopLayout->setSpacing( 6 ); + TopLayout->setMargin(11); + + QTabWidget* aTabBox = new QTabWidget(this); + myIsoPane = new VisuGUI_IsoSurfPane(this); + myIsoPane->setMargin( 5 ); + aTabBox->addTab(myIsoPane, "Iso Surface"); + myScalarPane = new VisuGUI_ScalarBarPane(this, false); + myIsoPane->setScalarBarPane(myScalarPane); + myScalarPane->setMargin( 5 ); + aTabBox->addTab(myScalarPane, "Scalar Bar"); + + TopLayout->addWidget(aTabBox); QGroupBox* GroupButtons = new QGroupBox( this, "GroupButtons" ); GroupButtons->setGeometry( QRect( 10, 10, 281, 48 ) ); @@ -116,68 +200,14 @@ VisuGUI_IsoSurfacesDlg::VisuGUI_IsoSurfacesDlg() buttonCancel->setAutoDefault( TRUE ); GroupButtonsLayout->addWidget( buttonCancel, 0, 2 ); - TopLayout->addWidget( TopGroup, 0, 0 ); - TopLayout->addWidget( GroupButtons, 1, 0 ); + TopLayout->addWidget(GroupButtons); // signals and slots connections connect( buttonOk, SIGNAL( clicked() ), this, SLOT( accept() ) ); connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) ); - connect( CBUpdate, SIGNAL( clicked() ), this, SLOT(onCBUpdate() ) ); -} - -/*! - Destructor -*/ -VisuGUI_IsoSurfacesDlg::~VisuGUI_IsoSurfacesDlg() -{ -} - -void VisuGUI_IsoSurfacesDlg::initFromPrsObject(VISU::IsoSurfaces_i* thePrs) { - NbrIso->setValue(thePrs->GetNbSurfaces()); - MinIso->setText(QString::number(thePrs->GetSubMin())); - MaxIso->setText(QString::number(thePrs->GetSubMax())); - switch(thePrs->GetScaling()){ - case VISU::LOGARITHMIC : - CBLog->setChecked(true); - break; - default: - CBLog->setChecked(false); - } -} - -void VisuGUI_IsoSurfacesDlg::storeToPrsObject(VISU::IsoSurfaces_i* thePrs) { - thePrs->SetNbSurfaces(NbrIso->value()); - thePrs->SetSubRange(MinIso->text().toDouble(), MaxIso->text().toDouble()); - if (CBUpdate->isChecked()) - { - thePrs->SetRange(MinIso->text().toDouble(), MaxIso->text().toDouble()); - if (CBLog->isChecked()) - thePrs->SetScaling(VISU::LOGARITHMIC); - else - thePrs->SetScaling(VISU::LINEAR); - } } void VisuGUI_IsoSurfacesDlg::accept() { - - if (MinIso->text().toDouble() >= MaxIso->text().toDouble()) - QAD_MessageBox::warn1( this,tr("VISU_WARNING"), - tr("MSG_MINMAX_VALUES"), - tr("VISU_BUT_OK")); - else if ( CBUpdate->isChecked() && CBLog->isChecked() && (MinIso->text().toDouble() <=0 || MaxIso->text().toDouble() <=0) ) - { - - QAD_MessageBox::warn1( this, - tr("VISU_WARNING"), - tr("WRN_LOGARITHMIC_RANGE_ISOSURF"), - tr("VISU_BUT_OK")); - } - else QDialog::accept(); + if (myIsoPane->check() && myScalarPane->check()) QDialog::accept(); } -void VisuGUI_IsoSurfacesDlg::onCBUpdate() -{ - if (CBUpdate->isChecked()) - CBLog->setDisabled(false); - else CBLog->setDisabled(true); -}