diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageParameter.h index 8c2a578642ccd736d0ccc0354f2db96da64bd480..01684af9326ed3b20133ddedcce04d9f29f4c8ae 100644 --- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageParameter.h +++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageParameter.h @@ -48,8 +48,11 @@ public: inline const QLineEdit* GetInput() const; inline QLineEdit* GetInput(); +signals: + void FileNameIsSet(); + protected slots: - bool SetFileName( const QString& value ); + bool SetFileName(); void SelectFile(); private: diff --git a/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputImageParameter.cxx b/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputImageParameter.cxx index 2f2b06519d1a69b0e0253d4f710bd2e9dad45660..2929d528a5515d1f4696b390e99e4ef46b0b0b20 100644 --- a/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputImageParameter.cxx +++ b/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputImageParameter.cxx @@ -69,8 +69,8 @@ void QtWidgetInputImageParameter::DoCreateWidget() m_HLayout->setContentsMargins(0, 0, 0, 0); m_Input = new QLineEdit; m_Input->setToolTip( m_InputImageParam->GetDescription() ); - connect( m_Input, SIGNAL(textChanged(const QString&)), this, SLOT(SetFileName(const QString&)) ); - connect( m_Input, SIGNAL(textChanged(const QString&)), GetModel(), SLOT(NotifyUpdate()) ); + connect( m_Input, SIGNAL(editingFinished()), this, SLOT(SetFileName()) ); + connect( this, SIGNAL(FileNameIsSet()), GetModel(), SLOT(NotifyUpdate()) ); m_HLayout->addWidget(m_Input); @@ -105,7 +105,9 @@ QtWidgetInputImageParameter if( filename.isEmpty() ) return; - if( !SetFileName( filename ) ) + m_Input->setText( filename ); + + if( !SetFileName() ) { std::ostringstream oss; @@ -119,21 +121,20 @@ QtWidgetInputImageParameter return; } - - m_Input->setText( filename ); } -bool QtWidgetInputImageParameter::SetFileName(const QString& value) +bool QtWidgetInputImageParameter::SetFileName() { bool res = true; // save value if( m_InputImageParam->SetFromFileName( - QFile::encodeName( value ).constData() ) == true ) + QFile::encodeName( m_Input->text() ).constData() ) == true ) { // notify of value change QString key( m_InputImageParam->GetKey() ); emit ParameterChanged(key); + emit FileNameIsSet(); } else res = false;