diff --git a/Code/ApplicationEngine/otbWrapperInputImageListParameter.h b/Code/ApplicationEngine/otbWrapperInputImageListParameter.h index 456a4b694a053882caa9f043c00fab07e37d417e..cadf262ad2a4aba97899ad09280da833c53212c8 100644 --- a/Code/ApplicationEngine/otbWrapperInputImageListParameter.h +++ b/Code/ApplicationEngine/otbWrapperInputImageListParameter.h @@ -187,32 +187,13 @@ public: m_ReaderList->Erase( id ); } - void ClearValue() + void Clear() { - m_ImageList = FloatVectorImageListType::Pointer(); - m_ReaderList = ImageFileReaderListType::Pointer(); - } - - void SwitchOrder( std::map<unisgned int, unsigned int> idMap ) - { - if(idMap.size() != m_ImageList->Size()) - { - itkExceptionMacro(<< "Map size and the number of image mismatches ("<<idMap.size()<<" vs. "<<m_ImageList->Size()<<")."); - } - - FloatVectorImageListType::Pointer tmpImageList = FloatVectorImageListType::New(); - ImageFileReaderListType::Pointer tmpReaderList = ImageFileReaderListType::New(); - - for( unsigned int i=0; i<idMap.size(); i++) - { - tmpImageList->PushBack( m_ImageList->GetNthElement(idMap[i]) ); - tmpReaderList->PushBack( m_ReaderList->GetNthElement(idMap[i]) ); - - m_ReaderList = tmpReaderList; - m_ImageList = tmpImageList; - } + m_ImageList->Clear(); + m_ReaderList->Clear(); } + protected: /** Constructor */ InputImageListParameter() diff --git a/Code/Wrappers/QtWidget/otbQtFileSelectionWidget.cxx b/Code/Wrappers/QtWidget/otbQtFileSelectionWidget.cxx index 4b54c6489aaeb95a94361c54bec65a38ba7b2c69..4abfcda962f23fcb6ad4a19fa945b9abb72cd6d7 100644 --- a/Code/Wrappers/QtWidget/otbQtFileSelectionWidget.cxx +++ b/Code/Wrappers/QtWidget/otbQtFileSelectionWidget.cxx @@ -23,16 +23,16 @@ namespace Wrapper { QtFileSelectionWidget::QtFileSelectionWidget() - : QWidget(), m_Index(0), m_AsValue(false) + : QWidget() /*, m_Index(0), m_AsValue(false)*/ { - m_InputList = InputImageListParameter::New(); + //m_InputList = InputImageListParameter::New(); this->DoCreateWidget(); } QtFileSelectionWidget::QtFileSelectionWidget( InputImageListParameter * il ) - : QWidget(), m_Index(0), m_AsValue(false) + : QWidget()/*, m_Index(0), m_AsValue(false)*/ { - m_InputList = il; + //m_InputList = il; this->DoCreateWidget(); } @@ -85,7 +85,7 @@ void QtFileSelectionWidget::SelectFile() //this->SetFileName(fileDialog.selectedFiles().at(0)); QString filemane(fileDialog.selectedFiles().at(0)); m_Input->setText(filemane); - +/* if( m_AsValue == false ) { m_InputList->AddFromFileName(filemane.toStdString()); @@ -96,21 +96,10 @@ void QtFileSelectionWidget::SelectFile() { m_InputList->SetNthFileName( m_Index, filemane.toStdString()); } - +*/ } } -/* -void QtFileSelectionWidget::SetFileName(const QString& value) -{ - // save value - m_InputImageParam->SetFromFileName(value.toStdString()); - - // notify of value change - QString key( QString::fromStdString(m_InputImageParam->GetKey()) ); - emit ParameterChanged(key); -} -*/ } } diff --git a/Code/Wrappers/QtWidget/otbQtFileSelectionWidget.h b/Code/Wrappers/QtWidget/otbQtFileSelectionWidget.h index df74ce83b0df7318d173f7e2825f3b313c78ccc2..ed6f77d9cbc937284af770e253c9f5c3be3ea409 100644 --- a/Code/Wrappers/QtWidget/otbQtFileSelectionWidget.h +++ b/Code/Wrappers/QtWidget/otbQtFileSelectionWidget.h @@ -39,6 +39,7 @@ public: QtFileSelectionWidget( InputImageListParameter * il ); virtual ~QtFileSelectionWidget(); +/* InputImageListParameter * GetInputList() { return m_InputList; @@ -48,7 +49,9 @@ public: { m_InputList = il; } +*/ +/* unsigned int GetIndex() { return m_Index; @@ -58,7 +61,7 @@ public: { m_Index = id; } - +*/ bool IsChecked() { @@ -70,6 +73,11 @@ public: return m_Checkbox->setChecked( val ); } + std::string GetFilename() + { + return m_Input->text().toStdString(); + } + protected slots: //void SetFileName( const QString& value ); @@ -88,9 +96,9 @@ private: QLineEdit* m_Input; QPushButton * m_Button; QCheckBox * m_Checkbox; - InputImageListParameter::Pointer m_InputList; - unsigned int m_Index; - bool m_AsValue; + //InputImageListParameter::Pointer m_InputList; + //unsigned int m_Index; + //bool m_AsValue; }; diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.cxx index 561a1cbbf2cd44d225992c4d9e4268126ca89398..cbaca2a5bcbe20b2f44950a32194162620aa2d63 100644 --- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.cxx +++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.cxx @@ -24,8 +24,7 @@ namespace Wrapper QtWidgetInputImageListParameter::QtWidgetInputImageListParameter(InputImageListParameter* param, QtWidgetModel* m) : QtWidgetParameterBase(m), - m_InputImageListParam(param)/*, - m_FileSelectionList()*/ + m_InputImageListParam(param) { } @@ -138,20 +137,6 @@ hg m_FileSelectionList.clear(); } -void QtWidgetInputImageListParameter::SelectFile() -{ - QFileDialog fileDialog; - fileDialog.setConfirmOverwrite(true); - fileDialog.setFileMode(QFileDialog::ExistingFile); - fileDialog.setNameFilter("Raster files (*)"); - - if (fileDialog.exec()) - { - //this->SetFileName(fileDialog.selectedFiles().at(0)); - //m_Input->setText(fileDialog.selectedFiles().at(0)); - } -} - void QtWidgetInputImageListParameter::UpFile() @@ -161,7 +146,8 @@ QtWidgetInputImageListParameter::UpFile() m_FileLayout = new QVBoxLayout(); m_FileLayout->setSpacing(2); - std::vector<QtFileSelectionWidget *> tmpList; + m_FileLayout->addStretch(); + // Map link between old and new index in the list std::map<unsigned int, unsigned int> idMap; @@ -191,28 +177,9 @@ QtWidgetInputImageListParameter::UpFile() } } - // Keys become values and inverse - std::map<unsigned int, unsigned int> idMapBis; - for(unsigned int i=0; i<idMap.size(); i++ ) - { - idMapBis[ idMap[i] ] = i; - } - - // Create the new item list - for(unsigned int i=0; i<m_FileSelectionList.size(); i++ ) - { - m_FileLayout->addWidget( m_FileSelectionList[ idMapBis[i] ] ); - tmpList.push_back(m_FileSelectionList[ idMapBis[i] ]); - } - - m_FileSelectionList = tmpList; - - - QGroupBox *mainGroup = new QGroupBox(); - mainGroup->setLayout(m_FileLayout); - m_Scroll->setWidget(mainGroup); - - this->update(); + this->UpdateFileList( idMap ); + + this->RecreateImageList(); } void @@ -223,7 +190,8 @@ QtWidgetInputImageListParameter::DownFile() m_FileLayout = new QVBoxLayout(); m_FileLayout->setSpacing(0); - std::vector<QtFileSelectionWidget *> tmpList; + m_FileLayout->addStretch(); + // Map link between old and new index in the list std::map<unsigned int, unsigned int> idMap; @@ -253,50 +221,52 @@ QtWidgetInputImageListParameter::DownFile() } } - // Keys become values and inverse - std::map<unsigned int, unsigned int> idMapBis; - for(unsigned int i=0; i<idMap.size(); i++ ) - { - idMapBis[ idMap[i] ] = i; - } + this->UpdateFileList( idMap ); + this->RecreateImageList(); +} + + +void +QtWidgetInputImageListParameter::UpdateFileList( std::map<unsigned int, unsigned int> idMap ) +{ + std::vector<QtFileSelectionWidget *> tmpList; + // Keys become values and inverse + std::map<unsigned int, unsigned int> idMapBis; + for(unsigned int i=0; i<idMap.size(); i++ ) + { + idMapBis[ idMap[i] ] = i; + } + // Create the new item list for(unsigned int i=0; i<m_FileSelectionList.size(); i++ ) { - // Update QtFileSelectionWidget index - m_FileSelectionList[ idMapBis[i] ]->SetIndex(idMapBis[i]); m_FileLayout->addWidget( m_FileSelectionList[ idMapBis[i] ] ); tmpList.push_back(m_FileSelectionList[ idMapBis[i] ]); } - - // Update input image list parameter order - m_InputImageListParam->SwitchOrder( idMapBis ); - - // Update QtFileSelectionWidget index - - + + m_FileSelectionList = tmpList; - QGroupBox *mainGroup = new QGroupBox(); mainGroup->setLayout(m_FileLayout); m_Scroll->setWidget(mainGroup); - + this->update(); } - void QtWidgetInputImageListParameter::AddFile() { m_FileLayout = new QVBoxLayout(); m_FileLayout->setSpacing(0); + m_FileLayout->addStretch(); for(unsigned int i=0; i<m_FileSelectionList.size(); i++ ) { m_FileLayout->addWidget( m_FileSelectionList[i] ); } - QtFileSelectionWidget * fileSelection = new QtFileSelectionWidget(m_InputImageListParam); + QtFileSelectionWidget * fileSelection = new QtFileSelectionWidget(); fileSelection->setFixedHeight( 30 ); m_FileLayout->addWidget( fileSelection ); m_FileSelectionList.push_back(fileSelection); @@ -306,6 +276,7 @@ QtWidgetInputImageListParameter::AddFile() m_Scroll->setWidget(mainGroup); this->update(); + this->RecreateImageList(); } void @@ -313,25 +284,15 @@ QtWidgetInputImageListParameter::SupressFile() { m_FileLayout = new QVBoxLayout(); m_FileLayout->setSpacing(0); + m_FileLayout->addStretch(); std::vector<QtFileSelectionWidget *> tmpList; for(unsigned int i=0; i<m_FileSelectionList.size(); i++ ) { if( !m_FileSelectionList[i]->IsChecked() ) { m_FileLayout->addWidget( m_FileSelectionList[i] ); + tmpList.push_back(m_FileSelectionList[i]); } - else - { - const unsigned int curId( m_FileSelectionList[i]->GetIndex() ); - for(unsigned int j=0; j<m_FileSelectionList.size(); j++ ) - { - if( m_FileSelectionList[j]->GetIndex() > curId ) - { - m_FileSelectionList[j]->SetIndex( m_FileSelectionList[j]->GetIndex()-1 ); - } - } - } - tmpList.push_back(m_FileSelectionList[i]); } m_FileSelectionList = tmpList; @@ -341,7 +302,7 @@ QtWidgetInputImageListParameter::SupressFile() m_Scroll->setWidget(mainGroup); this->update(); - std::cout<<"supsupsup"<<std::endl; + this->RecreateImageList(); } @@ -352,7 +313,7 @@ QtWidgetInputImageListParameter::EraseFile() m_FileLayout = new QVBoxLayout(); - QtFileSelectionWidget * fileSelection = new QtFileSelectionWidget(m_InputImageListParam); + QtFileSelectionWidget * fileSelection = new QtFileSelectionWidget(); fileSelection->setFixedHeight( 40 ); m_FileLayout->addWidget( fileSelection ); m_FileSelectionList.push_back(fileSelection); @@ -362,18 +323,25 @@ QtWidgetInputImageListParameter::EraseFile() m_Scroll->setWidget(mainGroup); this->update(); + this->RecreateImageList(); } -/* -void QtWidgetInputImageListParameter::SetFileName(const QString& value) + + +void QtWidgetInputImageListParameter::RecreateImageList() { // save value - m_InputImageParam->SetFromFileName(value.toStdString()); + m_InputImageListParam->Clear(); + for(unsigned int j=0; j<m_FileSelectionList.size(); j++ ) + { + if( m_FileSelectionList[j]->GetFilename() != "" ) + m_InputImageListParam->AddFromFileName(m_FileSelectionList[j]->GetFilename()); + } // notify of value change - QString key( QString::fromStdString(m_InputImageParam->GetKey()) ); + QString key( QString::fromStdString(m_InputImageListParam->GetKey()) ); emit ParameterChanged(key); } -*/ + } diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.h b/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.h index 83dddb022acd8795037037a14663c31638f5cbd5..28fb500f23b868cf58b5222d985b48c1b4e62a42 100644 --- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.h +++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.h @@ -40,7 +40,7 @@ public: protected slots: //void SetFileName( const QString& value ); - virtual void SelectFile(); + //virtual void SelectFile(); virtual void UpFile(); virtual void DownFile(); virtual void AddFile(); @@ -56,18 +56,21 @@ private: virtual void DoUpdateGUI(); + void RecreateImageList(); + void UpdateFileList( std::map<unsigned int, unsigned int> idMap ); + InputImageListParameter::Pointer m_InputImageListParam; QHBoxLayout * m_HLayout; QVBoxLayout * m_FileLayout; - QVBoxLayout * m_ButtonLayout; - QHBoxLayout * m_AddSupLayout; - QHBoxLayout * m_UpDownLayout; - QPushButton * m_SupButton; - QPushButton * m_AddButton; - QPushButton * m_EraseButton; - QPushButton * m_UpButton; - QPushButton * m_DownButton; + //QVBoxLayout * m_ButtonLayout; + //QHBoxLayout * m_AddSupLayout; + //QHBoxLayout * m_UpDownLayout; + //QPushButton * m_SupButton; + //QPushButton * m_AddButton; + //QPushButton * m_EraseButton; + //QPushButton * m_UpButton; + //QPushButton * m_DownButton; QScrollArea * m_Scroll; std::vector<QtFileSelectionWidget *> m_FileSelectionList; };