diff --git a/Modules/Qmitk/QmitkFileDialog.cpp b/Modules/Qmitk/QmitkFileDialog.cpp index c6fc22beeb..1e2450d9a9 100644 --- a/Modules/Qmitk/QmitkFileDialog.cpp +++ b/Modules/Qmitk/QmitkFileDialog.cpp @@ -1,198 +1,199 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ //#define _USE_MATH_DEFINES #include -// MITK -#include - -// STL Headers -#include - -//microservices -#include -#include -#include - //QT -#include -#include -#include +#include +#include +#include + // Test imports, delete later #include class DummyReader : public mitk::AbstractFileReader { public: DummyReader(const DummyReader& other) : mitk::AbstractFileReader(other) { } DummyReader(const std::string& extension, int priority) : mitk::AbstractFileReader(extension, "This is a dummy description") { m_Priority = priority; //std::vector options; m_Options.push_back(std::make_pair("isANiceGuy", true)); m_Options.push_back(std::make_pair("canFly", false)); m_Options.push_back(std::make_pair("isAwesome", true)); m_Options.push_back(std::make_pair("hasOptions", true)); m_Options.push_back(std::make_pair("has more Options", true)); m_Options.push_back(std::make_pair("has maaaaaaaany Options", true)); m_ServiceReg = this->RegisterService(); } ~DummyReader() { if (m_ServiceReg) m_ServiceReg.Unregister(); } using mitk::AbstractFileReader::Read; virtual std::vector< itk::SmartPointer > Read(const std::istream& /*stream*/, mitk::DataStorage* /*ds*/ = 0) { std::vector result; return result; } virtual void SetOptions(const mitk::IFileReader::OptionList& options ) { m_Options = options; //m_Registration.SetProperties(GetServiceProperties()); } private: DummyReader* Clone() const { return new DummyReader(*this); } us::ServiceRegistration m_ServiceReg; }; // End of internal dummy reader -const std::string QmitkFileDialog::VIEW_ID = "org.mitk.views.QmitkFileDialog"; // // // // // // // // // -QmitkFileDialog::QmitkFileDialog(QWidget* parent, Qt::WindowFlags f): QFileDialog(parent, f) +class QmitkFileDialogPrivate +{ +public: + + /** \brief This method is part of the widget and needs not to be called separately. */ + void CreateQtPartControl(QWidget *parent); + + /** \brief Remove all checkboxes from the options box.*/ + void ClearOptionsBox(); + + /** \brief Contains the checkboxes for the options*/ + QGridLayout* m_BoxLayout; + + /** \brief The Options the user has set for the reader / writer*/ + mitk::IFileReader::OptionList m_Options; +}; + +QmitkFileDialog::QmitkFileDialog(QWidget* parent, Qt::WindowFlags f) + : QFileDialog(parent, f) + , d(new QmitkFileDialogPrivate) { this->setOption(QFileDialog::DontUseNativeDialog); DummyReader* dr = new DummyReader(".xsfd", 1000); - CreateQtPartControl(this); + d->CreateQtPartControl(this); } QmitkFileDialog::~QmitkFileDialog() { } //////////////////// INITIALIZATION ///////////////////// -void QmitkFileDialog::CreateQtPartControl(QWidget *parent) +void QmitkFileDialogPrivate::CreateQtPartControl(QWidget *parent) { // cast own layout to gridLayout - QGridLayout *layout = (QGridLayout*)this->layout(); + QGridLayout *layout = qobject_cast(parent->layout()); // creat groupbox for options - QGroupBox *box = new QGroupBox(this); + QGroupBox *box = new QGroupBox(parent); box->setTitle("Options:"); box->setVisible(true); m_BoxLayout = new QGridLayout(box); box->setLayout(m_BoxLayout); layout->addWidget(box,4,0,1,3); - this->CreateConnections(); - - // m_context = us::getmodulecontext(); -} - -void QmitkFileDialog::CreateConnections() -{ - connect( this, SIGNAL(currentChanged( const QString &)), this, SLOT(DisplayOptions( QString)) ); - connect( this, SIGNAL(fileSelected( const QString &)), this, SLOT(ProcessSelectedFile()) ); + parent->connect( parent, SIGNAL(currentChanged(QString)), parent, SLOT(DisplayOptions( QString)) ); + parent->connect( parent, SIGNAL(fileSelected(QString)), parent, SLOT(ProcessSelectedFile()) ); } /////////////////////////// OPTIONS /////////////////////////////// -void QmitkFileDialog::DisplayOptions(QString path) +void QmitkFileDialog::DisplayOptions(const QString& path) { - ClearOptionsBox(); + d->ClearOptionsBox(); - mitk::IFileReader::OptionList options = QueryAvailableOptions(path.toStdString()); + mitk::IFileReader::OptionList options = QueryAvailableOptions(path); int i = 0; for (mitk::IFileReader::OptionList::const_iterator iter = options.begin(), end = options.end(); iter != end; ++iter) { QCheckBox *checker = new QCheckBox(this); checker->setText( QString::fromStdString(iter->first) ); checker->setChecked( iter->second ); - m_BoxLayout->addWidget(checker, i / 4, i % 4); + d->m_BoxLayout->addWidget(checker, i / 4, i % 4); ++i; } } -void QmitkFileDialog::ClearOptionsBox() +void QmitkFileDialogPrivate::ClearOptionsBox() { if ( m_BoxLayout != NULL ) { QLayoutItem* item; while ( ( item = m_BoxLayout->takeAt( 0 ) ) != NULL ) { delete item->widget(); delete item; } } } mitk::IFileReader::OptionList QmitkFileDialog::GetSelectedOptions() { mitk::IFileReader::OptionList result; - if ( m_BoxLayout != NULL ) + if ( d->m_BoxLayout != NULL ) { QLayoutItem* item; - while ( ( item = m_BoxLayout->takeAt( 0 ) ) != NULL ) + while ( ( item = d->m_BoxLayout->takeAt( 0 ) ) != NULL ) { QCheckBox* checker = dynamic_cast (item->widget()); if (checker) { mitk::IFileReader::FileServiceOption option( checker->text().toStdString() , checker->isChecked() ); result.push_back(option); } delete item->widget(); delete item; } } return result; } diff --git a/Modules/Qmitk/QmitkFileDialog.h b/Modules/Qmitk/QmitkFileDialog.h index b205bddc6d..68bb801ac0 100644 --- a/Modules/Qmitk/QmitkFileDialog.h +++ b/Modules/Qmitk/QmitkFileDialog.h @@ -1,97 +1,78 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef _QmitkFileDialog_H_INCLUDED #define _QmitkFileDialog_H_INCLUDED #include "QmitkExports.h" -#include //QT headers -#include -#include -#include - -//Microservices -#include "usServiceReference.h" +#include // MITK #include +class QmitkFileDialogPrivate; + /** -* \ingroup QmitkModule -* -* \brief This is the abstract base class for QmitkFileOpenDialog and QmitkFileSaveDialog. -* -* It contains common functionality and logic, but is not really useful on it's own. Use the subclasses! -*/ + * \ingroup QmitkModule + * + * \brief This is the abstract base class for QmitkFileOpenDialog and QmitkFileSaveDialog. + * + * It contains common functionality and logic, but is not really useful on it's own. Use the subclasses! + */ class QMITK_EXPORT QmitkFileDialog :public QFileDialog { //this is needed for all Qt objects that should have a MOC object (everything that derives from QObject) Q_OBJECT public: - static const std::string VIEW_ID; - QmitkFileDialog(QWidget* p = 0, Qt::WindowFlags f1 = 0); virtual ~QmitkFileDialog(); - /** \brief This method is part of the widget and needs not to be called separately. */ - virtual void CreateQtPartControl(QWidget *parent); - /** \brief This method is part of the widget and needs not to be called separately. (Creation of the connections of main and control widget.)*/ - virtual void CreateConnections(); - /** - * \brief Returns the Options that are currently / have been selected in the widget. - */ + * \brief Returns the Options that are currently / have been selected in the widget. + */ virtual mitk::IFileReader::OptionList GetSelectedOptions(); -signals: - - public slots: +protected: - /** - * \brief Called when the file selection has changed and the options need to be adapted. - */ - virtual void DisplayOptions(QString path); + /** + * \brief This is kind of a workaround. Getting the Options is different whether using a reader or a writer, + * so the subclasses of this dialog must implement this logic. + */ + virtual mitk::IFileReader::OptionList QueryAvailableOptions(const QString& path) = 0; - protected slots: - /** - * \brief When the Dialog is closed, the subclass must execute the logic to process the selected files. - */ - virtual void ProcessSelectedFile() = 0; + /** + * \brief Called when the file selection has changed and the options need to be adapted. + */ + Q_SLOT void DisplayOptions(const QString& path); -protected: - /** \brief Contains the checkboxes for the options*/ - QGridLayout* m_BoxLayout; + /** + * \brief When the Dialog is closed, the subclass must execute the logic to process the selected files. + */ + Q_SLOT virtual void ProcessSelectedFile() = 0; - /** \brief The Options the user has set for the reader / writer*/ - mitk::IFileReader::OptionList m_Options; - /** - * \brief This is kind of a workaround. Getting the Options is differen whether using a reader or a writer, - * so the subclasses of this dialog must implement this logic. - */ - virtual mitk::IFileReader::OptionList QueryAvailableOptions(std::string path) = 0; +private: - /** \brief Remove all checkboxes from the options box.*/ - virtual void ClearOptionsBox(); + QScopedPointer d; }; #endif // _QmitkFileDialog_H_INCLUDED diff --git a/Modules/Qmitk/QmitkFileOpenDialog.cpp b/Modules/Qmitk/QmitkFileOpenDialog.cpp index 018b620412..3ae6d9c392 100644 --- a/Modules/Qmitk/QmitkFileOpenDialog.cpp +++ b/Modules/Qmitk/QmitkFileOpenDialog.cpp @@ -1,109 +1,101 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ //#define _USE_MATH_DEFINES #include // MITK #include -#include -// STL Headers -#include - -//microservices -#include -#include -#include - -//QT -#include - -// Test imports, delete later -#include +class QmitkFileOpenDialogPrivate +{ +public: -const std::string QmitkFileOpenDialog::VIEW_ID = "org.mitk.views.QmitkFileOpenDialog"; + std::vector m_FileReaders; + mitk::IFileReader::OptionList m_Options; + mitk::FileReaderRegistry m_FileReaderRegistry; +}; -QmitkFileOpenDialog::QmitkFileOpenDialog(QWidget* parent, Qt::WindowFlags f): QmitkFileDialog(parent, f) +QmitkFileOpenDialog::QmitkFileOpenDialog(QWidget* parent, Qt::WindowFlags f) + : QmitkFileDialog(parent, f) + , d(new QmitkFileOpenDialogPrivate) { this->setFileMode(QFileDialog::ExistingFiles); } QmitkFileOpenDialog::~QmitkFileOpenDialog() { } void QmitkFileOpenDialog::ProcessSelectedFile() { QStringList files = this->selectedFiles(); while( files.size() > 0) { std::string file = files.front().toStdString(); files.pop_front(); std::string extension = file; extension.erase(0, extension.find_last_of('.')); - m_Options = GetSelectedOptions(); + d->m_Options = GetSelectedOptions(); // We are not looking for specific options here, which is okay, since the dialog currently only shows the // reader with the highest priority. Better behaviour required, if we want selectable readers. - mitk::IFileReader* fileReader = m_FileReaderRegistry.GetReader(extension); - fileReader->SetOptions(m_Options); - m_FileReaders.push_back(fileReader); + mitk::IFileReader* fileReader = d->m_FileReaderRegistry.GetReader(extension); + fileReader->SetOptions(d->m_Options); + d->m_FileReaders.push_back(fileReader); } } -mitk::IFileReader::OptionList QmitkFileOpenDialog::QueryAvailableOptions(std::string path) +mitk::IFileReader::OptionList QmitkFileOpenDialog::QueryAvailableOptions(const QString& path) { - std::string extension = path; - extension.erase(0, extension.find_last_of('.')); + QString extension = QFileInfo(path).completeSuffix(); - us::ModuleContext* context = us::GetModuleContext(); - mitk::IFileReader* reader = m_FileReaderRegistry.GetReader(extension); + mitk::IFileReader* reader = d->m_FileReaderRegistry.GetReader(extension.toStdString()); if (reader == NULL) { // MITK_WARN << "Did not find ReaderService for registered Extension. This should be looked into by a developer."; return mitk::IFileReader::OptionList(); } return reader->GetOptions(); } std::vector QmitkFileOpenDialog::GetReaders() { - return this->m_FileReaders; + return d->m_FileReaders; } std::vector< mitk::BaseData::Pointer > QmitkFileOpenDialog::GetBaseDatas() { //if (m_FileReaders.size() == 0 ) //{ // MITK_WARN << "Tried go get BaseData while no FileReader was selected in Dialog. Returning empty list."; // std::vector< mitk::BaseData::Pointer > emptyList; // return emptyList; //} //std::vector result; //for(std::vector< mitk::IFileReader* >::iterator reader = m_FileReaders.begin(); reader != m_FileReaders.end; reader++) //{ // result.splice(result.end(), m_FileReaders.) // result.pu //} //return m_FileReader->Read(this->selectedFiles().front().toStdString()); std::vector< mitk::BaseData::Pointer > emptyList; return emptyList; } diff --git a/Modules/Qmitk/QmitkFileOpenDialog.h b/Modules/Qmitk/QmitkFileOpenDialog.h index b8741b0137..dbdb00e755 100644 --- a/Modules/Qmitk/QmitkFileOpenDialog.h +++ b/Modules/Qmitk/QmitkFileOpenDialog.h @@ -1,88 +1,63 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef _QmitkFileOpenDialog_H_INCLUDED #define _QmitkFileOpenDialog_H_INCLUDED #include "QmitkExports.h" -#include - -//QT headers -#include -#include -//Microservices -#include "usServiceReference.h" -#include "usModuleContext.h" -#include "usServiceEvent.h" -#include "usServiceInterface.h" +// STL +#include // MITK #include #include -#include +#include + +class QmitkFileOpenDialogPrivate; /** * \ingroup QmitkModule * * \brief */ class QMITK_EXPORT QmitkFileOpenDialog :public QmitkFileDialog { //this is needed for all Qt objects that should have a MOC object (everything that derives from QObject) Q_OBJECT -private: - - //us::ModuleContext* m_Context; - ///** \brief a filter to further narrow down the list of results*/ - //std::string m_Filter; - ///** \brief The name of the ServiceInterface that this class should list */ - //std::string m_Interface; - ///** \brief The name of the ServiceProperty that will be displayed in the list to represent the service */ - //std::string m_NamingProperty; - public: - static const std::string VIEW_ID; - QmitkFileOpenDialog(QWidget* p = 0, Qt::WindowFlags f1 = 0); virtual ~QmitkFileOpenDialog(); - virtual std::vector GetReaders(); - - virtual std::vector< mitk::BaseData::Pointer > GetBaseDatas(); - -signals: + std::vector GetReaders(); - public slots: + std::vector< mitk::BaseData::Pointer > GetBaseDatas(); - protected slots: +protected: - virtual void ProcessSelectedFile(); + virtual mitk::IFileReader::OptionList QueryAvailableOptions(const QString& path); -protected: + virtual void ProcessSelectedFile(); - std::vector m_FileReaders; - mitk::IFileReader::OptionList m_Options; - mitk::FileReaderRegistry m_FileReaderRegistry; +private: - virtual mitk::IFileReader::OptionList QueryAvailableOptions(std::string path); + QScopedPointer d; - //Ui::QmitkFileOpenDialogControls* m_Controls; ///< member holding the UI elements of this widget }; #endif // _QmitkFileOpenDialog_H_INCLUDED diff --git a/Modules/Qmitk/QmitkFileSaveDialog.cpp b/Modules/Qmitk/QmitkFileSaveDialog.cpp index ea5c7dffca..f7a21edfe1 100644 --- a/Modules/Qmitk/QmitkFileSaveDialog.cpp +++ b/Modules/Qmitk/QmitkFileSaveDialog.cpp @@ -1,159 +1,153 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ //#define _USE_MATH_DEFINES #include // MITK -#include -#include - -// STL Headers -#include - -//microservices -#include -#include -#include - -//QT -#include -#include -#include -#include +#include // Test imports, delete later #include class DummyReader : public mitk::AbstractFileReader { public: DummyReader(const DummyReader& other) : mitk::AbstractFileReader(other) { } DummyReader(const std::string& extension, int priority) : mitk::AbstractFileReader(extension, "This is a dummy description") { m_Priority = priority; //std::vector options; m_Options.push_back(std::make_pair("isANiceGuy", true)); m_Options.push_back(std::make_pair("canFly", false)); m_Options.push_back(std::make_pair("isAwesome", true)); m_Options.push_back(std::make_pair("hasOptions", true)); m_Options.push_back(std::make_pair("has more Options", true)); m_Options.push_back(std::make_pair("has maaaaaaaany Options", true)); m_ServiceReg = this->RegisterService(); } ~DummyReader() { if (m_ServiceReg) m_ServiceReg.Unregister(); } using mitk::AbstractFileReader::Read; virtual std::vector< itk::SmartPointer > Read(const std::istream& /*stream*/, mitk::DataStorage* /*ds*/ = 0) { std::vector result; return result; } virtual void SetOptions(const mitk::IFileWriter::OptionList& options ) { m_Options = options; //m_Registration.SetProperties(GetServiceProperties()); } private: DummyReader* Clone() const { return new DummyReader(*this); } us::ServiceRegistration m_ServiceReg; }; // End of internal dummy reader -const std::string QmitkFileSaveDialog::VIEW_ID = "org.mitk.views.QmitkFileSaveDialog"; - // // // // // // // // // -QmitkFileSaveDialog::QmitkFileSaveDialog(mitk::BaseData::Pointer baseData, QWidget* parent, Qt::WindowFlags f): QmitkFileDialog(parent, f) +class QmitkFileSaveDialogPrivate +{ +public: + + mitk::IFileWriter* m_FileWriter; + mitk::IFileWriter::OptionList m_Options; + mitk::FileWriterRegistry m_FileWriterRegistry; + mitk::BaseData::Pointer m_BaseData; +}; + +QmitkFileSaveDialog::QmitkFileSaveDialog(mitk::BaseData::Pointer baseData, QWidget* parent, Qt::WindowFlags f) + : QmitkFileDialog(parent, f) + , d(new QmitkFileSaveDialogPrivate) { - m_BaseData = baseData; + d->m_BaseData = baseData; this->setFileMode(QFileDialog::AnyFile); } QmitkFileSaveDialog::~QmitkFileSaveDialog() { } void QmitkFileSaveDialog::ProcessSelectedFile() { std::string file = this->selectedFiles().front().toStdString(); std::string extension = file; extension.erase(0, extension.find_last_of('.')); - m_Options = GetSelectedOptions(); + d->m_Options = GetSelectedOptions(); // We are not looking for specific Options here, which is okay, since the dialog currently only shows the // reader with the highest priority. Better behaviour required, if we want selectable readers. - m_FileWriter = m_FileWriterRegistry.GetWriter(extension); - m_FileWriter->SetOptions(m_Options); + d->m_FileWriter = d->m_FileWriterRegistry.GetWriter(extension); + d->m_FileWriter->SetOptions(d->m_Options); } -mitk::IFileWriter::OptionList QmitkFileSaveDialog::QueryAvailableOptions(std::string path) +mitk::IFileWriter::OptionList QmitkFileSaveDialog::QueryAvailableOptions(const QString& /*path*/) { - us::ModuleContext* context = us::GetModuleContext(); - mitk::IFileWriter* writer = m_FileWriterRegistry.GetWriter(m_BaseData->GetNameOfClass()); + mitk::IFileWriter* writer = d->m_FileWriterRegistry.GetWriter(d->m_BaseData->GetNameOfClass()); if (writer == NULL) { // MITK_WARN << "Did not find WriterService for registered Extension. This should be looked into by a developer."; return mitk::IFileWriter::OptionList(); } return writer->GetOptions(); } mitk::IFileWriter* QmitkFileSaveDialog::GetWriter() { - return this->m_FileWriter; + return d->m_FileWriter; } void QmitkFileSaveDialog::WriteBaseData() { - if (m_FileWriter == NULL ) + if (d->m_FileWriter == NULL ) { MITK_WARN << "Tried go write BaseData while no FileWriter was selected in Dialog. Aborting."; return; } - m_FileWriter->Write(m_BaseData, this->selectedFiles().front().toStdString()); + d->m_FileWriter->Write(d->m_BaseData, this->selectedFiles().front().toStdString()); } diff --git a/Modules/Qmitk/QmitkFileSaveDialog.h b/Modules/Qmitk/QmitkFileSaveDialog.h index 9fda899211..d32cb96b6b 100644 --- a/Modules/Qmitk/QmitkFileSaveDialog.h +++ b/Modules/Qmitk/QmitkFileSaveDialog.h @@ -1,82 +1,67 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef _QmitkFileSaveDialog_H_INCLUDED #define _QmitkFileSaveDialog_H_INCLUDED #include "QmitkExports.h" -#include - -//QT headers -#include -#include -#include -//Microservices -#include "usServiceReference.h" +// STL +#include // MITK #include #include -#include #include +class QmitkFileSaveDialogPrivate; + /** * \ingroup QmitkModule * * \brief */ class QMITK_EXPORT QmitkFileSaveDialog :public QmitkFileDialog { //this is needed for all Qt objects that should have a MOC object (everything that derives from QObject) Q_OBJECT -private: - public: - static const std::string VIEW_ID; - QmitkFileSaveDialog(mitk::BaseData::Pointer baseData, QWidget* p = 0, Qt::WindowFlags f1 = 0); virtual ~QmitkFileSaveDialog(); - virtual mitk::IFileWriter* GetWriter(); + mitk::IFileWriter* GetWriter(); /** * \brief Writes the Basedata that the WIdget was constructed with into the file selected by the user. * */ - virtual void WriteBaseData(); + void WriteBaseData(); -signals: +protected: - protected slots: + virtual mitk::IFileWriter::OptionList QueryAvailableOptions(const QString& path); - virtual void ProcessSelectedFile(); + virtual void ProcessSelectedFile(); -protected: - - mitk::IFileWriter* m_FileWriter; - mitk::IFileWriter::OptionList m_Options; - mitk::FileWriterRegistry m_FileWriterRegistry; - mitk::BaseData::Pointer m_BaseData; +private: - mitk::IFileWriter::OptionList QueryAvailableOptions(std::string path); + QScopedPointer d; - //Ui::QmitkFileSaveDialogControls* m_Controls; ///< member holding the UI elements of this widget }; #endif // _QmitkFileSaveDialog_H_INCLUDED