Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F647
diff.patch
Public
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Authored By
•
wangx
Dec 1 2010, 5:04 PM
2010-12-01 17:04:37 (UTC+1)
Size
6 KB
Referenced Files
None
Subscribers
None
diff.patch
View Options
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<<qfileName.toLocal8Bit().constData();
mitk::PointSetWriter::Pointer writer = mitk::PointSetWriter::New();
std::string extension = itksys::SystemTools::GetFilenameLastExtension( qfileName.toLocal8Bit().constData() );
+ 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);
+ }
+
+ MITK_INFO<<"extension: " << extension;
// check if extension is valid
if (!writer->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<vtkSTLWriter>::Pointer writer=mitk::SurfaceVtkWriter<vtkSTLWriter>::New();
@@ -405,8 +434,7 @@
writer->GetVtkWriter()->SetFileTypeToBinary();
writer->Write();
}
- else
- if(qfileName.endsWith(".vtp")==true)
+ else if(extension == ".vtp")
{
mitk::SurfaceVtkWriter<vtkXMLPolyDataWriter>::Pointer writer=mitk::SurfaceVtkWriter<vtkXMLPolyDataWriter>::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<vtkPolyDataWriter>::Pointer writer=mitk::SurfaceVtkWriter<vtkPolyDataWriter>::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<<qfileName.toLocal8Bit().constData();
if (qfileName.isEmpty() )
return "";
@@ -470,8 +489,13 @@
std::string baseFilename = itksys::SystemTools::GetFilenameWithoutLastExtension( fileName );
std::string extension = itksys::SystemTools::GetFilenameLastExtension( fileName );
- if (extension == "")
- extension = ".pic";
+ 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);
+ fileName += extension;
+ }
if (extension == ".gz")
{
File Metadata
Details
Attached
Mime Type
text/plain
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
622
Default Alt Text
diff.patch (6 KB)
Attached To
Mode
T6332: Save File Dialog not working properly under Linux
Attached
Detach File
Event Timeline
•
wangx
added a comment.
Dec 1 2010, 5:04 PM
2010-12-01 17:04:37 (UTC+1)
Comment Actions
Diff(r28124).patch
Log In to Comment