From 9337a73708c4d0707c6caa0e870b1b06809c482f Mon Sep 17 00:00:00 2001
From: Cyrille Valladeau <cyrille.valladeau@c-s.fr>
Date: Thu, 3 Nov 2011 17:08:35 +0100
Subject: [PATCH] ENH: add Role for Float, int and string parameter

---
 Code/Wrappers/QtWidget/otbWrapperQtWidgetFloatParameter.cxx | 6 ++++++
 Code/Wrappers/QtWidget/otbWrapperQtWidgetIntParameter.cxx   | 5 +++++
 Code/Wrappers/QtWidget/otbWrapperQtWidgetModel.cxx          | 2 ++
 .../Wrappers/QtWidget/otbWrapperQtWidgetStringParameter.cxx | 5 +++++
 4 files changed, 18 insertions(+)

diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetFloatParameter.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetFloatParameter.cxx
index d8dd1fa976..b876ecb8c7 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetFloatParameter.cxx
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetFloatParameter.cxx
@@ -55,6 +55,7 @@ void QtWidgetFloatParameter::DoUpdateGUI()
     {
     font.setBold(false);
     }
+
   m_QDoubleSpinBox->setFont(font);
 }
 
@@ -78,6 +79,11 @@ void QtWidgetFloatParameter::DoCreateWidget()
   m_QHBoxLayout->addStretch();
 
   this->setLayout(m_QHBoxLayout);
+
+  if (m_FloatParam->GetRole() == Role_Output)
+    {
+    m_QDoubleSpinBox->setEnabled( false );
+    }
 }
 
 void QtWidgetFloatParameter::SetValue(double value)
diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetIntParameter.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetIntParameter.cxx
index dd45a92b78..95a3a5ebb0 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetIntParameter.cxx
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetIntParameter.cxx
@@ -51,6 +51,11 @@ void QtWidgetIntParameter::DoCreateWidget()
   m_QHBoxLayout->addStretch();
 
   this->setLayout(m_QHBoxLayout);
+
+  if (m_IntParam->GetRole() == Role_Output)
+    {
+    m_QSpinBox->setEnabled( false );
+    }
 }
 
 void QtWidgetIntParameter::DoUpdateGUI()
diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetModel.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetModel.cxx
index 857984f3ce..2344cc3f8b 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetModel.cxx
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetModel.cxx
@@ -55,7 +55,9 @@ void QtWidgetModel::ExecuteAndWriteOutputSlot()
 
   // launch the output image writing
   AppliThread * taskAppli = new AppliThread( m_Application );
+  connect(taskAppli, SIGNAL(ApplicationExecutionDone()), this, SLOT(NotifyUpdate()));
   connect(taskAppli, SIGNAL(ApplicationExecutionDone()), this, SLOT(ActivateExecuteButton()));
+
   taskAppli->Execute();
 
   // Tell the Progress Reporter to begin
diff --git a/Code/Wrappers/QtWidget/otbWrapperQtWidgetStringParameter.cxx b/Code/Wrappers/QtWidget/otbWrapperQtWidgetStringParameter.cxx
index 64a99591d7..1e363e2e07 100644
--- a/Code/Wrappers/QtWidget/otbWrapperQtWidgetStringParameter.cxx
+++ b/Code/Wrappers/QtWidget/otbWrapperQtWidgetStringParameter.cxx
@@ -54,6 +54,11 @@ void QtWidgetStringParameter::DoCreateWidget()
   connect( GetModel(), SIGNAL(UpdateGui()), this, SLOT(UpdateGUI() ) );
 
   this->setLayout(m_HLayout);
+
+  if (m_StringParam->GetRole() == Role_Output)
+    {
+    m_Input->setEnabled( false );
+    }
 }
 
 void QtWidgetStringParameter::SetValue(const QString& value)
-- 
GitLab