#include <QmitkCloseProjectAction.h>

Public Member Functions | |
| QmitkCloseProjectAction (berry::IWorkbenchWindow::Pointer window) | |
| QmitkCloseProjectAction (const QIcon &icon, berry::IWorkbenchWindow::Pointer window) | |
Protected Slots | |
| void | Run () |
Definition at line 34 of file QmitkCloseProjectAction.h.
| QmitkCloseProjectAction::QmitkCloseProjectAction | ( | berry::IWorkbenchWindow::Pointer | window ) |
Definition at line 30 of file QmitkCloseProjectAction.cpp.
: QAction(0)
{
this->init(window);
}
| QmitkCloseProjectAction::QmitkCloseProjectAction | ( | const QIcon & | icon, |
| berry::IWorkbenchWindow::Pointer | window | ||
| ) |
Definition at line 36 of file QmitkCloseProjectAction.cpp.
: QAction(0)
{
this->setIcon(icon);
this->init(window);
}
| void QmitkCloseProjectAction::Run | ( | ) | [protected, slot] |
Definition at line 53 of file QmitkCloseProjectAction.cpp.
References berry::SmartPointer< TObjectType >::Cast(), berry::SmartPointer< TObjectType >::IsNotNull(), MITK_ERROR, mitk::BoolProperty::New(), mitk::NodePredicateProperty::New(), and mitk::NodePredicateNot::New().
{
try
{
/* Get the DataStorage and the MultiWidget */
mitk::DataStorageEditorInput::Pointer editorInput;
mitk::DataStorage::Pointer storage;
QmitkStdMultiWidgetEditor::Pointer multiWidgetEditor;
berry::IEditorPart::Pointer editor = m_Window->GetActivePage()->GetActiveEditor();
if (editor.Cast<QmitkStdMultiWidgetEditor>().IsNull())
{
editorInput = new mitk::DataStorageEditorInput();
storage = editorInput->GetDataStorageReference()->GetDataStorage();
}
else
{
multiWidgetEditor = editor.Cast<QmitkStdMultiWidgetEditor>();
storage = multiWidgetEditor->GetEditorInput().Cast<mitk::DataStorageEditorInput>()->GetDataStorageReference()->GetDataStorage();
}
//check if there is anything else then helper object in the storage
if(storage->GetSubset(mitk::NodePredicateNot::New(mitk::NodePredicateProperty::New("helper object", mitk::BoolProperty::New(true))))->empty())
return;
/* Ask, if the user is sure about that */
if (QMessageBox::question(NULL, "Remove all data?", "Are you sure that you want to close the current project? This will remove all data objects?", QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes)
return;
/* Remove everything */
mitk::DataStorage::SetOfObjects::ConstPointer nodesToRemove = storage->GetAll();
storage->Remove(nodesToRemove);
/* Re-Add 2D renderer planes */
if (multiWidgetEditor.IsNotNull())
multiWidgetEditor->GetStdMultiWidget()->AddPlanesToDataStorage();
}
catch (std::exception& e)
{
MITK_ERROR << "Exception caught during scene saving: " << e.what();
QMessageBox::warning(NULL, "Error", QString("An error occurred during Close Project: %1").arg(e.what()));
}
}
1.7.2