Page MenuHomePhabricator

1432_Fix_OpenCloseExtApp.patch

Authored By
wald
Apr 28 2010, 6:31 PM
Size
10 KB
Referenced Files
None
Subscribers
None

1432_Fix_OpenCloseExtApp.patch

Index: mitk/Applications/Tutorial/Step7.cpp
===================================================================
--- mitk/Applications/Tutorial/Step7.cpp (revision 22409)
+++ mitk/Applications/Tutorial/Step7.cpp (working copy)
@@ -61,6 +61,7 @@
mitk::RenderingManager::GetInstance()->RequestUpdateAll();
std::cout << "8";
+ surfaceCreator->Delete();
}
std::cout << "9";
Index: mitk/Core/Code/Controllers/mitkRenderingManager.cpp
===================================================================
--- mitk/Core/Code/Controllers/mitkRenderingManager.cpp (revision 22409)
+++ mitk/Core/Code/Controllers/mitkRenderingManager.cpp (working copy)
@@ -191,6 +191,9 @@
renderWindow->RemoveObserver(callbacks_it->second.commands[0u]);
renderWindow->RemoveObserver(callbacks_it->second.commands[1u]);
renderWindow->RemoveObserver(callbacks_it->second.commands[2u]);
+ callbacks_it->second.commands[0u]->Delete();
+ callbacks_it->second.commands[1u]->Delete();
+ callbacks_it->second.commands[2u]->Delete();
this->m_RenderWindowCallbacksList.erase(callbacks_it);
RenderWindowVector::iterator rw_it = std::find( m_AllRenderWindows.begin(), m_AllRenderWindows.end(), renderWindow );
Index: mitk/Core/Code/Rendering/mitkGeometry2DDataMapper2D.h
===================================================================
--- mitk/Core/Code/Rendering/mitkGeometry2DDataMapper2D.h (revision 22409)
+++ mitk/Core/Code/Rendering/mitkGeometry2DDataMapper2D.h (working copy)
@@ -24,6 +24,7 @@
#include "mitkSurfaceMapper2D.h"
#include "mitkDataStorage.h"
#include "mitkDataNode.h"
+#include "mitkWeakPointer.h"
namespace mitk {
@@ -82,7 +83,7 @@
SurfaceMapper2D::Pointer m_SurfaceMapper;
- DataStorage::Pointer m_DataStorage; ///< DataStorage that will be searched for sub nodes
+ mitk::WeakPointer<mitk::DataStorage> m_DataStorage; ///< DataStorage that will be searched for sub nodes
DataNode::Pointer m_ParentNode; ///< parent node that will be used to search for sub nodes
typedef std::vector<DataNode*> NodesVectorType;
Index: mitk/Core/Code/Rendering/mitkGeometry2DDataVtkMapper3D.h
===================================================================
--- mitk/Core/Code/Rendering/mitkGeometry2DDataVtkMapper3D.h (revision 22409)
+++ mitk/Core/Code/Rendering/mitkGeometry2DDataVtkMapper3D.h (working copy)
@@ -23,6 +23,7 @@
#include "mitkBaseVtkMapper3D.h"
#include "mitkDataStorage.h"
#include "mitkGeometry2DDataToSurfaceFilter.h"
+#include "mitkWeakPointer.h"
#include <vtkSystemIncludes.h>
#include <vtkCleanPolyData.h>
@@ -202,7 +203,7 @@
bool m_NormalsActorAdded;
/** \brief The DataStorage defines which part of the data tree is traversed for renderering. */
- mitk::DataStorage::Pointer m_DataStorage;
+ mitk::WeakPointer<mitk::DataStorage> m_DataStorage;
/** A default grayscale lookup-table, used for reference */
vtkLookupTable *m_DefaultLookupTable;
Index: mitk/Core/Code/Rendering/mitkSurfaceMapper2D.cpp
===================================================================
--- mitk/Core/Code/Rendering/mitkSurfaceMapper2D.cpp (revision 22409)
+++ mitk/Core/Code/Rendering/mitkSurfaceMapper2D.cpp (working copy)
@@ -86,6 +86,7 @@
m_Cutter->Delete();
m_LUT->Delete();
m_PointLocator->Delete();
+ m_Stripper->Delete();
}
const mitk::Surface *mitk::SurfaceMapper2D::GetInput(void)
Index: mitk/Core/Code/Testing/mitkFocusManagerTest.cpp
===================================================================
--- mitk/Core/Code/Testing/mitkFocusManagerTest.cpp (revision 22409)
+++ mitk/Core/Code/Testing/mitkFocusManagerTest.cpp (working copy)
@@ -79,7 +79,9 @@
MITK_TEST_CONDITION_REQUIRED(!focusManager->RemoveElement(element2), "Testing removing from empty list with different object");
MITK_TEST_CONDITION_REQUIRED(!focusManager->RemoveElement(element1), "Testing removing from empty list with different object again");
- focusManager = NULL;
+ //focusManager = NULL;
+ focusManager->Delete();
+
//TODO: test IsLast() IsFirst() GetFirst() GetLast() GoToNext() GetIter() SetLoop(bool loop)
MITK_TEST_END();
Index: mitk/CoreUI/Qmitk/QmitkStdMultiWidget.cpp
===================================================================
--- mitk/CoreUI/Qmitk/QmitkStdMultiWidget.cpp (revision 22409)
+++ mitk/CoreUI/Qmitk/QmitkStdMultiWidget.cpp (working copy)
@@ -38,8 +38,6 @@
#include "mitkInteractionConst.h"
#include "mitkDataStorage.h"
-#include "vtkTextProperty.h"
-#include "vtkCornerAnnotation.h"
#include "mitkVtkLayerController.h"
QmitkStdMultiWidget::QmitkStdMultiWidget(QWidget* parent, Qt::WindowFlags f)
@@ -254,42 +252,39 @@
//if( view >= 0 && view < 4 )
// //write LayoutName --> Viewer 3D shoudn't write the layoutName.
- vtkCornerAnnotation *cornerText;
- vtkTextProperty *textProp;
- vtkRenderer *ren;
-
//Render Window 1 == transversal
- cornerText = vtkCornerAnnotation::New();
- cornerText->SetText(0, "Transversal");
- cornerText->SetMaximumFontSize(12);
- textProp = vtkTextProperty::New();
- textProp->SetColor( 1.0, 0.0, 0.0 );
- cornerText->SetTextProperty( textProp );
- ren = vtkRenderer::New();
- ren->AddActor(cornerText);
- mitk::VtkLayerController::GetInstance(this->GetRenderWindow1()->GetRenderWindow())->InsertForegroundRenderer(ren,true);
-
+ m_CornerAnnotaions[0].cornerText = vtkCornerAnnotation::New();
+ m_CornerAnnotaions[0].cornerText->SetText(0, "Transversal");
+ m_CornerAnnotaions[0].cornerText->SetMaximumFontSize(12);
+ m_CornerAnnotaions[0].textProp = vtkTextProperty::New();
+ m_CornerAnnotaions[0].textProp->SetColor( 1.0, 0.0, 0.0 );
+ m_CornerAnnotaions[0].cornerText->SetTextProperty( m_CornerAnnotaions[0].textProp );
+ m_CornerAnnotaions[0].ren = vtkRenderer::New();
+ m_CornerAnnotaions[0].ren->AddActor(m_CornerAnnotaions[0].cornerText);
+ mitk::VtkLayerController::GetInstance(this->GetRenderWindow1()->GetRenderWindow())->InsertForegroundRenderer(m_CornerAnnotaions[0].ren,true);
+
//Render Window 2 == sagittal
- cornerText = vtkCornerAnnotation::New();
- cornerText->SetText(0, "Sagittal");
- cornerText->SetMaximumFontSize(12);
- textProp = vtkTextProperty::New();
- textProp->SetColor( 0.0, 1.0, 0.0 );
- cornerText->SetTextProperty( textProp );
- ren = vtkRenderer::New();
- ren->AddActor(cornerText);
- mitk::VtkLayerController::GetInstance(this->GetRenderWindow2()->GetRenderWindow())->InsertForegroundRenderer(ren,true);
-
+ m_CornerAnnotaions[1].cornerText = vtkCornerAnnotation::New();
+ m_CornerAnnotaions[1].cornerText->SetText(0, "Sagittal");
+ m_CornerAnnotaions[1].cornerText->SetMaximumFontSize(12);
+ m_CornerAnnotaions[1].textProp = vtkTextProperty::New();
+ m_CornerAnnotaions[1].textProp->SetColor( 0.0, 1.0, 0.0 );
+ m_CornerAnnotaions[1].cornerText->SetTextProperty( m_CornerAnnotaions[1].textProp );
+ m_CornerAnnotaions[1].ren = vtkRenderer::New();
+ m_CornerAnnotaions[1].ren->AddActor(m_CornerAnnotaions[1].cornerText);
+ mitk::VtkLayerController::GetInstance(this->GetRenderWindow2()->GetRenderWindow())->InsertForegroundRenderer(m_CornerAnnotaions[1].ren,true);
+
//Render Window 3 == coronal
- cornerText = vtkCornerAnnotation::New();
- cornerText->SetText(0, "Coronal");
- cornerText->SetMaximumFontSize(12);
- textProp = vtkTextProperty::New();
- textProp->SetColor( 0.295, 0.295, 1.0 );
- cornerText->SetTextProperty( textProp );
- ren = vtkRenderer::New();
- ren->AddActor(cornerText);
- mitk::VtkLayerController::GetInstance(this->GetRenderWindow3()->GetRenderWindow())->InsertForegroundRenderer(ren,true);
+ m_CornerAnnotaions[2].cornerText = vtkCornerAnnotation::New();
+ m_CornerAnnotaions[2].cornerText->SetText(0, "Coronal");
+ m_CornerAnnotaions[2].cornerText->SetMaximumFontSize(12);
+ m_CornerAnnotaions[2].textProp = vtkTextProperty::New();
+ m_CornerAnnotaions[2].textProp->SetColor( 0.295, 0.295, 1.0 );
+ m_CornerAnnotaions[2].cornerText->SetTextProperty( m_CornerAnnotaions[2].textProp );
+ m_CornerAnnotaions[2].ren = vtkRenderer::New();
+ m_CornerAnnotaions[2].ren->AddActor(m_CornerAnnotaions[2].cornerText);
+ mitk::VtkLayerController::GetInstance(this->GetRenderWindow3()->GetRenderWindow())->InsertForegroundRenderer(m_CornerAnnotaions[2].ren,true);
+
/*************************************************/
@@ -419,6 +414,23 @@
{
DisablePositionTracking();
DisableNavigationControllerEventListening();
+
+ mitk::VtkLayerController::GetInstance(this->GetRenderWindow1()->GetRenderWindow())->RemoveRenderer( m_CornerAnnotaions[0].ren );
+ mitk::VtkLayerController::GetInstance(this->GetRenderWindow2()->GetRenderWindow())->RemoveRenderer( m_CornerAnnotaions[1].ren );
+ mitk::VtkLayerController::GetInstance(this->GetRenderWindow3()->GetRenderWindow())->RemoveRenderer( m_CornerAnnotaions[2].ren );
+
+ //Delete CornerAnnotation
+ m_CornerAnnotaions[0].cornerText->Delete();
+ m_CornerAnnotaions[0].textProp->Delete();
+ m_CornerAnnotaions[0].ren->Delete();
+
+ m_CornerAnnotaions[1].cornerText->Delete();
+ m_CornerAnnotaions[1].textProp->Delete();
+ m_CornerAnnotaions[1].ren->Delete();
+
+ m_CornerAnnotaions[2].cornerText->Delete();
+ m_CornerAnnotaions[2].textProp->Delete();
+ m_CornerAnnotaions[2].ren->Delete();
}
void QmitkStdMultiWidget::RemovePlanesFromDataStorage()
Index: mitk/CoreUI/Qmitk/QmitkStdMultiWidget.h
===================================================================
--- mitk/CoreUI/Qmitk/QmitkStdMultiWidget.h (revision 22409)
+++ mitk/CoreUI/Qmitk/QmitkStdMultiWidget.h (working copy)
@@ -35,6 +35,9 @@
#include <QmitkRenderWindow.h>
#include <QmitkLevelWindowWidget.h>
+#include "vtkTextProperty.h"
+#include "vtkCornerAnnotation.h"
+
class QHBoxLayout;
class QVBoxLayout;
class QGridLayout;
@@ -280,6 +283,14 @@
QWidget *mitkWidget2Container;
QWidget *mitkWidget3Container;
QWidget *mitkWidget4Container;
+
+ struct
+ {
+ vtkCornerAnnotation *cornerText;
+ vtkTextProperty *textProp;
+ vtkRenderer *ren;
+ } m_CornerAnnotaions[3];
+
};
Index: mitk/Modules/Bundles/org.mitk.gui.qt.datamanager/src/QmitkDataManagerView.cpp
===================================================================
--- mitk/Modules/Bundles/org.mitk.gui.qt.datamanager/src/QmitkDataManagerView.cpp (revision 22409)
+++ mitk/Modules/Bundles/org.mitk.gui.qt.datamanager/src/QmitkDataManagerView.cpp (working copy)
@@ -107,6 +107,7 @@
//# GUI
m_NodeTreeModel = new QmitkDataStorageTreeModel(this->GetDataStorage());
+ m_NodeTreeModel->setParent( parent );
//# Tree View (experimental)
m_NodeTreeView = new QTreeView;

File Metadata

Mime Type
text/plain
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
115
Default Alt Text
1432_Fix_OpenCloseExtApp.patch (10 KB)

Event Timeline

Second Fixes - for open/Close ExtApp