X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_ImportBathymetryDlg.cxx;h=68cdbeadfa5de53935a39c1b18854049c5b6dcee;hb=39b1848f103d89cfb544a1651b3fbf221fc2c401;hp=76ab3075e8a35c64961f987bddd71e177d01e097;hpb=f0688b4c39fcc3e49c2b58a90724b9c1c84f1337;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_ImportBathymetryDlg.cxx b/src/HYDROGUI/HYDROGUI_ImportBathymetryDlg.cxx index 76ab3075..68cdbead 100644 --- a/src/HYDROGUI/HYDROGUI_ImportBathymetryDlg.cxx +++ b/src/HYDROGUI/HYDROGUI_ImportBathymetryDlg.cxx @@ -24,12 +24,13 @@ #include #include +#include #include #include #include #include #include -#include +#include #include HYDROGUI_ImportBathymetryDlg::HYDROGUI_ImportBathymetryDlg( HYDROGUI_Module* theModule, const QString& theTitle ) @@ -42,18 +43,26 @@ HYDROGUI_ImportBathymetryDlg::HYDROGUI_ImportBathymetryDlg( HYDROGUI_Module* the QLabel* aFileNameLabel = new QLabel( tr( "FILE_NAME" ), myFileNameGroup ); - myFileName = new QLineEdit( myFileNameGroup ); - myFileName->setReadOnly( true ); + myFileNames = new QListWidget( myFileNameGroup ); + //myFileNames->viewport()->setAttribute( Qt::WA_TransparentForMouseEvents ); + //myFileNames->setFocusPolicy(Qt::FocusPolicy::NoFocus); - QToolButton* aBrowseBtn = new QToolButton( myFileNameGroup ); + QPushButton* aBrowseBtn = new QPushButton( myFileNameGroup ); + aBrowseBtn->setText("Load files(s)"); aBrowseBtn->setIcon( aResMgr->loadPixmap( "HYDRO", tr( "BROWSE_ICO" ) ) ); - QBoxLayout* aFileNameLayout = new QHBoxLayout( myFileNameGroup ); + QBoxLayout* aFileNameLayout = new QVBoxLayout( myFileNameGroup ); + + myFuseIntoOne = new QCheckBox(); + myFuseIntoOne->setText("Import as one bathemetry object (fuse the geometry data)"); + myFuseIntoOne->setEnabled( false ); + aFileNameLayout->setMargin( 5 ); aFileNameLayout->setSpacing( 5 ); - aFileNameLayout->addWidget( aFileNameLabel ); - aFileNameLayout->addWidget( myFileName ); + aFileNameLayout->addWidget( aFileNameLabel ); aFileNameLayout->addWidget( aBrowseBtn ); + aFileNameLayout->addWidget( myFileNames ); + aFileNameLayout->addWidget( myFuseIntoOne ); // Bathymetry name myObjectNameGroup = new QGroupBox( tr( "BATHYMETRY_NAME" ) ); @@ -77,6 +86,7 @@ HYDROGUI_ImportBathymetryDlg::HYDROGUI_ImportBathymetryDlg( HYDROGUI_Module* the addStretch(); connect( aBrowseBtn, SIGNAL( clicked() ), this, SLOT( onBrowse() ) ); + connect( myFuseIntoOne, SIGNAL( stateChanged(int) ), this, SLOT( onStateChanged(int) ) ); } HYDROGUI_ImportBathymetryDlg::~HYDROGUI_ImportBathymetryDlg() @@ -85,15 +95,19 @@ HYDROGUI_ImportBathymetryDlg::~HYDROGUI_ImportBathymetryDlg() void HYDROGUI_ImportBathymetryDlg::reset() { - myFileName->clear(); + myFileNames->clear(); myObjectName->clear(); myObjectNameGroup->setEnabled( false ); + myFuseIntoOne->setEnabled( false ); } void HYDROGUI_ImportBathymetryDlg::setObjectName( const QString& theName ) { myObjectName->setText( theName ); - myObjectNameGroup->setEnabled( !theName.isEmpty() || !myFileName->text().isEmpty() ); + bool ObjNameState = myObjectName->isEnabled(); + myObjectNameGroup->setEnabled( !theName.isEmpty() || myFileNames->count() > 0 ); + myObjectName->setEnabled(ObjNameState); + myFuseIntoOne->setEnabled( myFileNames->count() > 1 ); } QString HYDROGUI_ImportBathymetryDlg::getObjectName() const @@ -101,17 +115,38 @@ QString HYDROGUI_ImportBathymetryDlg::getObjectName() const return myObjectName->text(); } -void HYDROGUI_ImportBathymetryDlg::setFileName( const QString& theFileName ) +void HYDROGUI_ImportBathymetryDlg::setFileNames( const QStringList& theFileNames ) { - myFileName->setText( theFileName ); + myFileNames->clear(); + myFileNames->addItems( theFileNames ); + + if (myFuseIntoOne->isChecked() || theFileNames.count() == 1 ) + { + myObjectNameGroup->setEnabled( true ); + myObjectName->setEnabled( true ); + } + else + { + myObjectNameGroup->setEnabled( false ); + myObjectName->setEnabled( false ); + } + // + if (theFileNames.count() == 1) + myFuseIntoOne->setEnabled( false ); + else if (theFileNames.count() > 1) + myFuseIntoOne->setEnabled( true ); - if ( !myObjectNameGroup->isEnabled() ) - myObjectNameGroup->setEnabled( !theFileName.isEmpty() ); } -QString HYDROGUI_ImportBathymetryDlg::getFileName() const +QStringList HYDROGUI_ImportBathymetryDlg::getFileNames() const { - return myFileName->text(); + QStringList stritems; + for(int i = 0; i < myFileNames->count(); ++i) + { + QListWidgetItem* item = myFileNames->item(i); + stritems << item->text(); + } + return stritems; } void HYDROGUI_ImportBathymetryDlg::setInvertAltitudes( const bool theIsInvert ) @@ -124,18 +159,53 @@ bool HYDROGUI_ImportBathymetryDlg::isInvertAltitudes() const return myInvertAltitudes->isChecked(); } +void HYDROGUI_ImportBathymetryDlg::setFuseIntoOneOptionChecked( bool isFIO ) +{ + myFuseIntoOne->setChecked( isFIO ); +} + +bool HYDROGUI_ImportBathymetryDlg::isFuseIntoOneOptionChecked() const +{ + return myFuseIntoOne->isChecked(); +} + +void HYDROGUI_ImportBathymetryDlg::setFuseIntoOneOptionEnabled(bool enabled) +{ + myFuseIntoOne->setEnabled(enabled); +} + +bool HYDROGUI_ImportBathymetryDlg::isFuseIntoOneOptionEnabled() const +{ + return myFuseIntoOne->isEnabled(); +} + void HYDROGUI_ImportBathymetryDlg::onBrowse() { QString aFilter( tr( "BATHYMETRY_FILTER" ) ); - QString aFileName = SUIT_FileDlg::getFileName( this, "", aFilter, tr( "IMPORT_BATHYMETRY_FROM_FILE" ), true ); + QStringList aFileNames = SUIT_FileDlg::getOpenFileNames( this, "", aFilter, tr( "IMPORT_BATHYMETRY_FROM_FILE" ), true ); - if( !aFileName.isEmpty() ) + if( !aFileNames.isEmpty() ) { - setFileName( aFileName ); - emit FileSelected( aFileName ); + setFileNames( aFileNames ); + emit FileSelected( aFileNames ); } } - +void HYDROGUI_ImportBathymetryDlg::onStateChanged (int state) +{ + if (getFileNames().count() > 1) + { + if (state == Qt::Checked) + { + myObjectName->setEnabled(true); + myObjectNameGroup->setEnabled(true); + } + else if (state == Qt::Unchecked) + { + myObjectName->setEnabled(false); + myObjectNameGroup->setEnabled(false); + } + } +}