X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=lib%2FcpPlugins%2FPlugins%2FIO%2FImageReader.cxx;h=8866f7d2e6add18045f66f659667aeb40c916cd8;hb=ef8b6e12859181d3faa8019ce7319c539c0f86ec;hp=6068c88390f47c205978a09e4250e8c3cbb7482e;hpb=2eaf38cfdcbd2cfb0cc323dad6ded6bbeb436edf;p=cpPlugins.git diff --git a/lib/cpPlugins/Plugins/IO/ImageReader.cxx b/lib/cpPlugins/Plugins/IO/ImageReader.cxx index 6068c88..8866f7d 100644 --- a/lib/cpPlugins/Plugins/IO/ImageReader.cxx +++ b/lib/cpPlugins/Plugins/IO/ImageReader.cxx @@ -1,8 +1,6 @@ #include "ImageReader.h" #include -#include - #include #include @@ -11,18 +9,29 @@ #endif // cpPlugins_Interface_QT4 // ------------------------------------------------------------------------- -bool cpPlugins::IO::ImageReader:: +cpPlugins::IO::ImageReader:: +DialogResult cpPlugins::IO::ImageReader:: ExecConfigurationDialog( QWidget* parent ) { - bool r = false; + DialogResult r = Self::DialogResult_Cancel; #ifdef cpPlugins_Interface_QT4 + QStringList filters; + filters + << "Image files (*.bmp *.png *.jpg *.jpeg *.dcm *.mhd *.nhdr *.nrrd *.tiff)" + << "Any files (*)"; + + std::vector< std::string > names; + this->m_Parameters->GetStringList( names, "FileNames" ); + std::string name = ( names.size( ) > 0 )? names[ 0 ]: "."; + // Show dialog and check if it was accepted QFileDialog dialog( parent ); dialog.setFileMode( QFileDialog::ExistingFiles ); - dialog.setDirectory( QFileDialog::tr( "." ) ); - dialog.setNameFilter( QFileDialog::tr( "All files (*)" ) ); + dialog.setDirectory( QFileDialog::tr( name.c_str( ) ) ); + dialog.setNameFilters( filters ); + dialog.setAcceptMode( QFileDialog::AcceptOpen ); if( dialog.exec( ) ) { QStringList names = dialog.selectedFiles( ); @@ -32,7 +41,7 @@ ExecConfigurationDialog( QWidget* parent ) "FileNames", qIt->toStdString( ) ); this->m_Parameters->SetBool( "VectorType", false ); - r = true; + r = Self::DialogResult_NoModal; } // fi @@ -97,7 +106,7 @@ _GenerateData( ) r = "ImageReader: Could not CreateImageIO for \"" + names[ 0 ] + "\""; } else - r = "No image files given"; + r = "ImageReader: No image files given"; return( r ); } @@ -379,20 +388,15 @@ _RealGD( const TStringList& names ) else if( names.size( ) > 1 ) { // Read image series - std::set< std::string > ordered_names; - for( unsigned int i = 0; i < names.size( ); ++i ) - ordered_names.insert( names[ i ] ); - typedef itk::ImageSeriesReader< I > _MR; _MR* reader = this->_CreateITK< _MR >( ); - std::set< std::string >::const_iterator fnIt = ordered_names.begin( ); - for( ; fnIt != ordered_names.end( ); ++fnIt ) - reader->AddFileName( *fnIt ); + for( unsigned int i = 0; i < names.size( ); ++i ) + reader->AddFileName( names[ i ] ); try { reader->Update( ); out->SetITK< I >( reader->GetOutput( ) ); - out->SetName( *( ordered_names.begin( ) ) ); + out->SetName( names[ 0 ] ); } catch( itk::ExceptionObject& err ) {