]> Creatis software - clitk.git/blobdiff - vv/vvToolStructureSetManager.cxx
itkv4 migration:
[clitk.git] / vv / vvToolStructureSetManager.cxx
index 6440a75ca0458587f8c5e843601ac32396e21dd2..3c4b5c1c7eba2ee9799c98ef5b721ea3b6a839a6 100644 (file)
@@ -27,7 +27,8 @@
 #include <QFileDialog>
 #include <QMessageBox>
 #include <QColorDialog>
-
+#include <QAbstractEventDispatcher>
 // vtk
 #include <vtkLookupTable.h>
 #include <vtkRenderWindow.h>
@@ -100,6 +101,14 @@ vvToolStructureSetManager::vvToolStructureSetManager(vvMainWindowBase * parent,
 vvToolStructureSetManager::~vvToolStructureSetManager()
 {
   m_NumberOfTool--;
+  
+  // clearing the list at this point avoids
+  // segfaulting due to events being dispatched
+  // after object destruction
+  mTreeWidgetList.clear();
+  mTree->clearSelection();
+
+  //std::cout << "vvToolStructureSetManager::~vvToolStructureSetManager()" << std::endl;
 }
 //------------------------------------------------------------------------------
 
@@ -119,6 +128,8 @@ void vvToolStructureSetManager::Initialize() {
 //------------------------------------------------------------------------------
 void vvToolStructureSetManager::InputIsSelected(vvSlicerManager *m)
 {
+  //std::cout << "vvToolStructureSetManager::InputIsSelected()" << std::endl;
+  
   //int mTabNumber = parent->GetTab()->addTab(this, "");
   //  this->setFixedWidth(120);
   //this->setPreferedHeight(441);  
@@ -250,7 +261,7 @@ void vvToolStructureSetManager::OpenBinaryImage()
     std::vector<std::string> filenames;
     filenames.push_back(filename[i].toStdString());
     reader->SetInputFilenames(filenames);
-    reader->Update(IMAGE);
+    reader->Update(vvImageReader::IMAGE);
     QApplication::restoreOverrideCursor();
 
     if (reader->GetLastError().size() != 0) {
@@ -356,6 +367,8 @@ void vvToolStructureSetManager::apply()
 //------------------------------------------------------------------------------
 bool vvToolStructureSetManager::close()
 {
+  //std::cout << "vvToolStructureSetManager::close()" << std::endl;
+
   return vvToolWidgetBase::close();
 }
 //------------------------------------------------------------------------------
@@ -364,6 +377,8 @@ bool vvToolStructureSetManager::close()
 //------------------------------------------------------------------------------
 void vvToolStructureSetManager::closeEvent(QCloseEvent *event) 
 {
+  //std::cout << "vvToolStructureSetManager::closeEvent()" << std::endl;
+
   std::vector<vvSlicerManager*>::iterator iter = std::find(mListOfInputs.begin(), mListOfInputs.end(), mCurrentSlicerManager);
   if (iter != mListOfInputs.end()) mListOfInputs.erase(iter);
   
@@ -393,6 +408,7 @@ void vvToolStructureSetManager::closeEvent(QCloseEvent *event)
 
 //------------------------------------------------------------------------------
 void vvToolStructureSetManager::SelectedItemChangedInTree() {
+  
   // Search which roi is selected
   QList<QTreeWidgetItem *> l = mTree->selectedItems();
   if (l.size() == 0) {
@@ -402,6 +418,8 @@ void vvToolStructureSetManager::SelectedItemChangedInTree() {
     return;
   }
   QTreeWidgetItem * w = l[0];
+  //std::cout << "selected item -> " << w->text(1).toStdString() << std::endl;
+  //std::cout << "m_NumberOfTool -> " << m_NumberOfTool << std::endl;
   if (mMapTreeWidgetToROI.find(w) == mMapTreeWidgetToROI.end()) {
     mCurrentROIActor = NULL;
     mCurrentROI = NULL;
@@ -575,7 +593,7 @@ void vvToolStructureSetManager::ReloadCurrentROI() {
   // Reload image
   vvImageReader::Pointer reader = vvImageReader::New();
   reader->SetInputFilename(mCurrentROI->GetFilename());
-  reader->Update(IMAGE);
+  reader->Update(vvImageReader::IMAGE);
   if (reader->GetLastError() != "") {
     QMessageBox::information(mMainWindowBase, tr("Sorry, error. Could not reload"), reader->GetLastError().c_str());
     return;