Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "QmitkFileChooser.h"
00019
00020 #include <QFileDialog>
00021 #include <QVBoxLayout>
00022 #include <QHBoxLayout>
00023 #include <QPushButton>
00024 #include <QLineEdit>
00025 #include <QApplication>
00026
00027 QmitkFileChooser::QmitkFileChooser(bool horizontalLayout, bool selectDir,
00028 bool fileMustExist
00029 , QWidget* parent, Qt::WindowFlags f )
00030 : QWidget( parent, f )
00031 , m_SelectDir( selectDir )
00032 , m_FileMustExist(fileMustExist)
00033 {
00034 m_File = new QLineEdit;
00035 m_File->setReadOnly( true );
00036 m_SelectFile = new QPushButton("Select File");
00037 connect( m_SelectFile, SIGNAL(clicked(bool)), this, SLOT( OnSelectFileClicked( bool ) ) );
00038
00039 this->SetHorizotalLayout(horizontalLayout);
00040 }
00041
00042 void QmitkFileChooser::SetHorizotalLayout(bool horizontalLayout)
00043 {
00044 QBoxLayout* layout = 0;
00045 if(horizontalLayout)
00046 layout = new QHBoxLayout;
00047 else
00048 layout = new QVBoxLayout;
00049
00050 layout->setContentsMargins(0,0,0,0);
00051 layout->addWidget( m_File );
00052 layout->addWidget( m_SelectFile );
00053
00054 this->setLayout( layout );
00055 }
00056
00057 void QmitkFileChooser::SetSelectDir( bool selectDir )
00058 {
00059 m_SelectDir = selectDir;
00060 }
00061
00062 void QmitkFileChooser::SetFileMustExist( bool fileMustExist )
00063 {
00064 m_FileMustExist = fileMustExist;
00065 }
00066
00067 void QmitkFileChooser::SetFile( const std::string& file )
00068 {
00069 m_File->setText( QString::fromStdString(file) );
00070 }
00071
00072 void QmitkFileChooser::SetFilePattern( const std::string& filepattern )
00073 {
00074 m_FilePattern = QString::fromStdString(filepattern);
00075 }
00076
00077 bool QmitkFileChooser::IsValidFile() const
00078 {
00079 return m_ValidFile;
00080 }
00081
00082 std::string QmitkFileChooser::GetFile() const
00083 {
00084 return m_File->text().toStdString();
00085 }
00086
00087 void QmitkFileChooser::OnSelectFileClicked( bool )
00088 {
00089
00090 QString filename;
00091 if( m_SelectDir )
00092 filename = QFileDialog::getExistingDirectory( QApplication::activeWindow()
00093 , "Open directory", m_File->text() );
00094 else
00095 {
00096 if (m_FileMustExist)
00097 filename = QFileDialog::getOpenFileName( QApplication::activeWindow()
00098 , "Open file", m_File->text(), m_FilePattern );
00099 else
00100 filename = QFileDialog::getSaveFileName( QApplication::activeWindow()
00101 , "Open file", m_File->text(), m_FilePattern );
00102 }
00103
00104 if(!filename.isEmpty())
00105 m_File->setText( filename );
00106
00107 emit NewFileSelected(filename.toStdString());
00108 }