From 3061049938b5951c8cb73e9e93f0e5a6826de407 Mon Sep 17 00:00:00 2001
From: Cyrille Valladeau <cyrille.valladeau@c-s.fr>
Date: Wed, 9 Nov 2011 15:16:42 +0100
Subject: [PATCH] ENH: start control on file format for image and vd in Qt

---
 ...WrapperQtWidgetInputImageListParameter.cxx | 29 +++++++++++++------
 .../otbWrapperQtWidgetInputImageParameter.cxx |  6 ++++
 2 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.cxx
index 6b0db47291..4f55be3697 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.cxx
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageListParameter.cxx
@@ -140,7 +140,13 @@ QtWidgetInputImageListParameter::UpdateImageList()
   // save value
   for(unsigned int j=0; j<m_InputImageListParam->GetImageList()->Size(); j++ )
     {
-    m_InputImageListParam->SetNthFileName(j, m_FileSelectionList[j]->GetFilename());
+    if( m_InputImageListParam->SetNthFileName(j, m_FileSelectionList[j]->GetFilename()) == true )
+      {
+      itk::OStringStream oss;
+      oss << "The given file " << m_FileSelectionList[j]->GetFilename() << " is not valid.";
+      this->GetModel()->SendLogWARNING( oss.str() );
+      m_FileSelectionList[j]->ClearFilename();
+      }
     }
 
   emit Change();
@@ -346,18 +352,23 @@ void QtWidgetInputImageListParameter::RecreateImageList()
   // save value
   m_InputImageListParam->ClearValue();
 
-  for(unsigned int j=0; j<m_FileSelectionList.size(); j++ )
+  if( m_FileSelectionList.size() == 0)
+    {
+    this->AddFile();
+    }
+  else
     {
-    if( m_InputImageListParam->AddFromFileName(m_FileSelectionList[j]->GetFilename()) == true )
+    for(unsigned int j=0; j<m_FileSelectionList.size(); j++ )
       {
-      itk::OStringStream oss;
-      oss << "The given file " << m_FileSelectionList[j]->GetFilename() << " is not valid.";
-      this->GetModel()->SendLogWARNING( oss.str() );
-      m_FileSelectionList[j]->ClearFilename();
+      m_InputImageListParam->AddFromFileName(m_FileSelectionList[j]->GetFilename());
+      connect( m_FileSelectionList[j]->GetInput(), SIGNAL(textChanged(const QString&)), this, SLOT(UpdateImageList()) );
       }
-    }
-  
+
     emit Change();
+    // notify of value change
+    QString key( QString::fromStdString(m_InputImageListParam->GetKey()) );
+    emit ParameterChanged(key);
+    }
 }
 
 
diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageParameter.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageParameter.cxx
index 0d35287633..841d38c456 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageParameter.cxx
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetInputImageParameter.cxx
@@ -72,6 +72,12 @@ void QtWidgetInputImageParameter::SelectFile()
     {
     if ( this->SetFileName(fileDialog.selectedFiles().at(0)) == false )
       m_Input->setText(fileDialog.selectedFiles().at(0));
+    else
+      {
+      itk::OStringStream oss;
+      oss << "The given file " << m_FileSelectionList[j]->GetFilename() << " is not valid.";
+      this->GetModel()->SendLogWARNING( oss.str() );
+      }
     }
 }
 
-- 
GitLab