1 #include <cpPlugins/QT/OpenFileDialog.h>
5 #include <cpPlugins/BaseObjects/Parameters.h>
7 // -------------------------------------------------------------------------
8 cpPlugins::QT::OpenFileDialog::
9 OpenFileDialog( QWidget* parent )
10 : QFileDialog( parent ),
15 this, SIGNAL( accepted( ) ), this, SLOT( _dlg_Accepted( ) )
17 this->setWindowTitle( "Open an(some) file(s)" );
20 // -------------------------------------------------------------------------
21 cpPlugins::QT::OpenFileDialog::
26 // -------------------------------------------------------------------------
27 void cpPlugins::QT::OpenFileDialog::
29 cpPlugins::BaseObjects::Parameters* params, const std::string& name
34 this->m_Parameters = NULL;
39 auto param_type = params->GetType( name );
41 param_type != cpPlugins::BaseObjects::Parameters::OpenFileName &&
42 param_type != cpPlugins::BaseObjects::Parameters::OpenFileNameList
45 this->m_Parameters = NULL;
50 this->m_Parameters = params;
54 auto extensions = this->m_Parameters->GetAcceptedFileExtensions( name );
55 if( extensions != "" )
56 filters << extensions.c_str( );
57 filters << "Any file (*)";
58 if( param_type == cpPlugins::BaseObjects::Parameters::OpenFileName )
59 this->setFileMode( QFileDialog::ExistingFile );
61 this->setFileMode( QFileDialog::ExistingFiles );
62 this->setNameFilters( filters );
63 this->setAcceptMode( QFileDialog::AcceptOpen );
64 if( param_type == cpPlugins::BaseObjects::Parameters::OpenFileName )
66 auto file = this->m_Parameters->GetOpenFileName( this->m_Name );
69 QFileInfo info( file.c_str( ) );
70 this->setDirectory( info.canonicalPath( ) );
74 auto files = this->m_Parameters->GetOpenFileNameList( this->m_Name );
75 if( files.size( ) > 0 )
77 QFileInfo info( files[ 0 ].c_str( ) );
78 this->setDirectory( info.canonicalPath( ) );
81 this->setDirectory( "." );
86 // -------------------------------------------------------------------------
87 void cpPlugins::QT::OpenFileDialog::
90 if( this->m_Parameters != NULL )
92 auto files = this->selectedFiles( );
93 auto param_type = this->m_Parameters->GetType( this->m_Name );
94 if( param_type == cpPlugins::BaseObjects::Parameters::OpenFileNameList )
96 this->m_Parameters->ClearOpenFileNameList( this->m_Name );
97 for( auto fIt = files.begin( ); fIt != files.end( ); ++fIt )
98 this->m_Parameters->AddToOpenFileNameList(
99 this->m_Name, fIt->toStdString( )
103 this->m_Parameters->SetOpenFileName(
104 this->m_Name, files[ 0 ].toStdString( )
110 #endif // cpPlugins_QT4