Index: QmitkCommonFunctionality.cpp =================================================================== --- QmitkCommonFunctionality.cpp (revision 28124) +++ QmitkCommonFunctionality.cpp (working copy) @@ -127,12 +127,27 @@ else fileName = aFileName; fileName = itksys::SystemTools::GetFilenameWithoutExtension(fileName); - fileName += ".mps"; - QString qfileName = QFileDialog::getSaveFileName(NULL, "Save file", QString(fileName.c_str()),"MITK Point-Sets (*.mps)"); + // fileName += ".mps"; + QString selected_suffix("MITK Point-Sets (*.mps)"); + QString possible_suffixes("MITK Point-Sets (*.mps)"); + QString initialFileName = QString::fromStdString(fileName); + + /*QString qfileName = QFileDialog::getSaveFileName( NULL, "Save image", initialFilename ,mitk::CoreObjectFactory::GetInstance()->GetSaveFileExtensions(),&selected_suffix); + */ + QString qfileName = QFileDialog::getSaveFileName(NULL, "Save file", initialFileName, possible_suffixes, &selected_suffix); MITK_INFO<IsExtensionValid(extension)) { @@ -143,7 +158,7 @@ return; } - if (fileName.empty() == false ) + if (qfileName.isEmpty() == false ) { writer->SetInput( pointset ); writer->SetFileName( qfileName.toLocal8Bit().constData() ); @@ -379,11 +394,25 @@ fileName = aFileName; std::string selectedItemsName = itksys::SystemTools::GetFilenameWithoutExtension(fileName); - selectedItemsName += ".stl"; - QString qfileName = QFileDialog::getSaveFileName(NULL, "Save surface object", QString(selectedItemsName.c_str()),"Surface Data(*.stl *.vtk *.vtp)"); - if (!(qfileName.isEmpty()) ) - { - if(qfileName.endsWith(".stl")==true) + //selectedItemsName += ".stl" + QString selected_suffix("STL File (*.stl)"); + QString possible_suffixes("STL File (*.stl);; VTK File (*.vtk);; VTP File (*.vtp)"); + QString qfileName = QFileDialog::getSaveFileName(NULL, "Save surface object", QString::fromStdString(selectedItemsName), possible_suffixes, + &selected_suffix); + + if (qfileName.isEmpty()) + return ""; + + std::string extension = itksys::SystemTools::GetFilenameLastExtension( qfileName.toStdString() ); + if (extension == "") // if no extension has been entered manually into the filename + { + // get from combobox selected file extension + extension = itksys::SystemTools::GetFilenameLastExtension( selected_suffix.toLocal8Bit().constData()); + extension = extension.substr(0, extension.size()-1); + qfileName += QString::fromStdString(extension); + } + + if(extension == ".stl" ) { mitk::SurfaceVtkWriter::Pointer writer=mitk::SurfaceVtkWriter::New(); @@ -405,8 +434,7 @@ writer->GetVtkWriter()->SetFileTypeToBinary(); writer->Write(); } - else - if(qfileName.endsWith(".vtp")==true) + else if(extension == ".vtp") { mitk::SurfaceVtkWriter::Pointer writer=mitk::SurfaceVtkWriter::New(); writer->SetInput( surface ); @@ -414,10 +442,8 @@ writer->GetVtkWriter()->SetDataModeToBinary(); writer->Write(); } - else if (qfileName.endsWith(".vtk")==true) + else if (extension == ".vtk") { - /*if (qfileName.endsWith(".vtk")==false) - qfileName += ".vtk";*/ mitk::SurfaceVtkWriter::Pointer writer=mitk::SurfaceVtkWriter::New(); writer->SetInput( surface ); writer->SetFileName(qfileName.toLocal8Bit().constData()); @@ -429,13 +455,7 @@ QMessageBox::critical(NULL,"ERROR","File extension not suitable for writing Surface data. Choose .vtk, .stl or .vtp"); return ""; } - fileName = qfileName.toLocal8Bit().constData(); - } - else - { - fileName.clear(); - } - return fileName; + return qfileName.toLocal8Bit().constData(); } #include "mitkImageWriter.h" @@ -444,6 +464,7 @@ std::string CommonFunctionality::SaveImage(mitk::Image* image, const char* aFileName, bool askForDifferentFilename) { static QString lastDirectory = ""; + QString selected_suffix("DKFZ Pic (*.pic)"); std::string fileName; if(aFileName == NULL || askForDifferentFilename) @@ -453,9 +474,7 @@ // prepend the last directory initialFilename = lastDirectory + initialFilename; - - QString suffix_pic("DKFZ Pic (*.pic)"); - QString qfileName = QFileDialog::getSaveFileName( NULL, "Save image", initialFilename ,mitk::CoreObjectFactory::GetInstance()->GetSaveFileExtensions(),&suffix_pic); + QString qfileName = QFileDialog::getSaveFileName( NULL, "Save image", initialFilename ,mitk::CoreObjectFactory::GetInstance()->GetSaveFileExtensions(),&selected_suffix); MITK_INFO<