Index: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkFileOpenAction.cpp =================================================================== --- mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkFileOpenAction.cpp (revision 19842) +++ mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkFileOpenAction.cpp (working copy) @@ -39,24 +39,28 @@ this->connect(this, SIGNAL(triggered(bool)), this, SLOT(Run())); } +QString QmitkFileOpenAction::m_LastPath = "/"; + void QmitkFileOpenAction::Run() { //QFileDialog dialog(static_cast(m_Window->GetShell()->GetControl())); //dialog.setFileMode(QFileDialog::ExistingFiles); //QStringList filters; - //filters << "Images (*.pic *.pic.gz *.vti *.dcm *.nhdr *.nrrd *.mhd)" + //filters << "Images (*.pic *.pic.gz *.vti *.dcm *.nhdr *.nrrd *.mhd)" // << "Surfaces (*.stl *.vtk *.vtp)" // << "MITK Pointset (*.mps)" // << "All Files (*.*)"; //dialog.setFilters(filters); - QStringList fileNames = QFileDialog::getOpenFileNames(NULL,"Open","/",mitk::CoreObjectFactory::GetInstance()->GetFileExtensions()); + QStringList fileNames = QFileDialog::getOpenFileNames(NULL,"Open",m_LastPath,mitk::CoreObjectFactory::GetInstance()->GetFileExtensions()); //if (dialog.exec()) // fileNames = dialog.selectedFiles(); - if (fileNames.empty()) + if (fileNames.empty()) return; + m_LastPath = this->GetPath(fileNames.at(0)); + mitk::DataStorageEditorInput::Pointer editorInput; mitk::DataStorage::Pointer dataStorage; QmitkStdMultiWidgetEditor::Pointer multiWidgetEditor; @@ -86,7 +90,7 @@ mitk::DataTreeNode::Pointer node; node = nodeReader->GetOutput(i); if ( node->GetData() != NULL ) - { + { dataStorage->Add(node); dsmodified = true; } @@ -97,7 +101,7 @@ } } - + if (multiWidgetEditor.IsNull()) { cherry::IEditorPart::Pointer editor = m_Window->GetActivePage()->OpenEditor(editorInput, QmitkStdMultiWidgetEditor::EDITOR_ID); @@ -136,5 +140,13 @@ mitk::RenderingManager::GetInstance()->RequestUpdateAll(); } - + } + +QString QmitkFileOpenAction::GetPath(QString FileWithPath) + { + std::string returnValue = ""; + std::string FileWithPathStd = FileWithPath.toStdString(); + returnValue = FileWithPathStd.substr( 0, FileWithPathStd.rfind("/")+1 ); + return QString(returnValue.c_str()); + } \ No newline at end of file Index: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkFileOpenAction.h =================================================================== --- mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkFileOpenAction.h (revision 19842) +++ mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkFileOpenAction.h (working copy) @@ -36,7 +36,6 @@ Q_OBJECT public: - QmitkFileOpenAction(cherry::IWorkbenchWindow::Pointer window); protected slots: @@ -44,8 +43,19 @@ void Run(); private: - cherry::IWorkbenchWindow::Pointer m_Window; + + /** + * @brief stores the last path of last opened file + */ + static QString m_LastPath; + + /** + * @brief Extracts the path out of a complete filename (means file + path). + * If you put in C:/temp/test.jpg for example, the method returns + * C:/temp/ + */ + QString GetPath(QString FileWithPath); };