#include <QmitkFileOpenAction.h>

Public Member Functions | |
| QmitkFileOpenAction (berry::IWorkbenchWindow::Pointer window) | |
| QmitkFileOpenAction (const QIcon &icon, berry::IWorkbenchWindow::Pointer window) | |
Protected Slots | |
| void | Run () |
Definition at line 36 of file QmitkFileOpenAction.h.
| QmitkFileOpenAction::QmitkFileOpenAction | ( | berry::IWorkbenchWindow::Pointer | window ) |
Definition at line 41 of file QmitkFileOpenAction.cpp.
: QAction(0)
{
this->init(window);
}
| QmitkFileOpenAction::QmitkFileOpenAction | ( | const QIcon & | icon, |
| berry::IWorkbenchWindow::Pointer | window | ||
| ) |
Definition at line 47 of file QmitkFileOpenAction.cpp.
: QAction(0)
{
this->setIcon(icon);
this->init(window);
}
| void QmitkFileOpenAction::Run | ( | ) | [protected, slot] |
stores the last path of last opened file
Definition at line 70 of file QmitkFileOpenAction.cpp.
References berry::SmartPointer< TObjectType >::Cast(), QmitkStdMultiWidgetEditor::EDITOR_ID, berry::IWorkbenchWindow::GetActivePage(), mitk::RenderingManager::GetInstance(), mitk::CoreObjectFactory::GetInstance(), berry::SmartPointer< TObjectType >::IsNull(), mitk::BoolProperty::New(), mitk::NodePredicateProperty::New(), mitk::NodePredicateNot::New(), and mitk::DataNodeFactory::New().
{
static QString m_LastPath;
if(m_GeneralPreferencesNode.Lock().IsNotNull())
{
if(m_LastPath.isEmpty())
m_LastPath = QString::fromStdString(m_GeneralPreferencesNode.Lock()->Get("LastFileOpenPath", ""));
}
//QFileDialog dialog(static_cast<QWidget*>(m_Window->GetShell()->GetControl()));
//dialog.setFileMode(QFileDialog::ExistingFiles);
//QStringList filters;
//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",m_LastPath,mitk::CoreObjectFactory::GetInstance()->GetFileExtensions());
//if (dialog.exec())
// fileNames = dialog.selectedFiles();
if (fileNames.empty())
return;
QFileInfo info(fileNames.at(0));
m_LastPath = info.filePath();
if(m_GeneralPreferencesNode.Lock().IsNotNull())
{
m_GeneralPreferencesNode.Lock()->Put("LastFileOpenPath", m_LastPath.toStdString());
m_GeneralPreferencesNode.Lock()->Flush();
}
mitk::DataStorageEditorInput::Pointer editorInput;
mitk::DataStorage::Pointer dataStorage;
QmitkStdMultiWidgetEditor::Pointer multiWidgetEditor;
berry::IEditorPart::Pointer editor = m_Window->GetActivePage()->GetActiveEditor();
if (editor.Cast<QmitkStdMultiWidgetEditor>().IsNull())
{
editorInput = new mitk::DataStorageEditorInput();
dataStorage = editorInput->GetDataStorageReference()->GetDataStorage();
}
else
{
multiWidgetEditor = editor.Cast<QmitkStdMultiWidgetEditor>();
dataStorage = multiWidgetEditor->GetEditorInput().Cast<mitk::DataStorageEditorInput>()->GetDataStorageReference()->GetDataStorage();
}
if (multiWidgetEditor.IsNull())
{
berry::IEditorPart::Pointer editor = m_Window->GetActivePage()->OpenEditor(editorInput, QmitkStdMultiWidgetEditor::EDITOR_ID);
multiWidgetEditor = editor.Cast<QmitkStdMultiWidgetEditor>();
}
else
{
multiWidgetEditor->GetStdMultiWidget()->RequestUpdate();
}
bool dsmodified = false;
for (QStringList::Iterator fileName = fileNames.begin();
fileName != fileNames.end(); ++fileName)
{
mitk::DataNodeFactory::Pointer nodeReader = mitk::DataNodeFactory::New();
try
{
nodeReader->SetFileName(fileName->toStdString());
nodeReader->Update();
for ( unsigned int i = 0 ; i < nodeReader->GetNumberOfOutputs( ); ++i )
{
mitk::DataNode::Pointer node;
node = nodeReader->GetOutput(i);
if ( node->GetData() != NULL )
{
dataStorage->Add(node);
dsmodified = true;
}
}
}
catch(...)
{
}
}
if(dsmodified)
{
// get all nodes that have not set "includeInBoundingBox" to false
mitk::NodePredicateNot::Pointer pred
= mitk::NodePredicateNot::New(mitk::NodePredicateProperty::New("includeInBoundingBox"
, mitk::BoolProperty::New(false)));
mitk::DataStorage::SetOfObjects::ConstPointer rs = dataStorage->GetSubset(pred);
// calculate bounding geometry of these nodes
mitk::TimeSlicedGeometry::Pointer bounds = dataStorage->ComputeBoundingGeometry3D(rs);
// initialize the views to the bounding geometry
mitk::RenderingManager::GetInstance()->InitializeViews(bounds);
}
}
1.7.2