From 0475a9d0f4623a7ce65d1f8b0c14e53b305b1c10 Mon Sep 17 00:00:00 2001 From: caballero Date: Tue, 10 Mar 2009 14:33:26 +0000 Subject: [PATCH] Debugged the thread and added a deletion on exit --- src2/creaImageIOGimmickView.h | 2 -- src2/creaImageIOWxGimmickReaderDialog.h | 3 +- src2/creaImageIOWxGimmickView.cpp | 34 ++----------------- src2/creaImageIOWxGimmickView.h | 3 -- src2/creaImageIOWxTreeView.cpp | 13 ++----- src2/creaImageIOWxViewer.cpp | 45 ++++++++++++++++--------- src2/creaImageIOWxViewer.h | 1 + 7 files changed, 36 insertions(+), 65 deletions(-) diff --git a/src2/creaImageIOGimmickView.h b/src2/creaImageIOGimmickView.h index 2a977bf..57faaa7 100644 --- a/src2/creaImageIOGimmickView.h +++ b/src2/creaImageIOGimmickView.h @@ -60,8 +60,6 @@ namespace creaImageIO //Returns the maximal priority int GetMaximalPriority(){return mReader.GetMaximalPriority();} - ///Returns the selected Images and validates to see if they comply with the given parameter(<4D) - vtkImageData* GetSelectedImage(int dim); ///Adds the selected Images to the given vector and validates to see if they comply with the given parameter (4D) virtual void GetSelectedImages(std::vector& s, int dim) { GimmickError("INTERNAL ERROR : GetSelectedImages not implemented"); } diff --git a/src2/creaImageIOWxGimmickReaderDialog.h b/src2/creaImageIOWxGimmickReaderDialog.h index 8b597df..38341c5 100644 --- a/src2/creaImageIOWxGimmickReaderDialog.h +++ b/src2/creaImageIOWxGimmickReaderDialog.h @@ -38,8 +38,7 @@ namespace creaImageIO //=============================================================================================== //Image Selection //=============================================================================================== - vtkImageData* GetSelectedImage(int dim) - { return mView->GetSelectedImage(dim); } + void GetSelectedImages(std::vector& s, int dim) { mView->GetSelectedImages(s, dim); } diff --git a/src2/creaImageIOWxGimmickView.cpp b/src2/creaImageIOWxGimmickView.cpp index 7992b56..2bd904b 100644 --- a/src2/creaImageIOWxGimmickView.cpp +++ b/src2/creaImageIOWxGimmickView.cpp @@ -212,13 +212,6 @@ namespace creaImageIO mNotebook->AddPage( view, crea::std2wx(name) ); } - //====================================================================== - /// Returns the selected Image so that it complies with the given parameter(<4D) - vtkImageData* WxGimmickView::GetSelectedImage(int dim) - { - return NULL; - //GetTreeViewMap()["Local database"]->GetSelectedImage(dim); - } //====================================================================== /// Returns the selected Images so that they comply with the given parameter(4D) @@ -227,6 +220,7 @@ namespace creaImageIO int level=GetTreeViewMap()["Local database"]->GetNumberOfLevels(); std::vector im=GetTreeViewMap()["Local database"]->GetSelected(level+1); ReadImagesNotThreaded(s,im,dim); + mViewer->StopPlayer(); } //====================================================================== /// Returns the selected Images so that they comply with the given parameter(4D) @@ -492,35 +486,11 @@ namespace creaImageIO { mViewer->SetImage(index,image); } - /* - tree::Node* node=GetNextNodeQueued(); - - - bool found=false; - std::vector::iterator i; - for(i=sel.begin();i!=sel.end()&&!found;++i) - { - if((*i)==node) - { - mViewer->AddImage(image); - found=true; - } - } - */ } UnqueueNext(); } - /* - if(!(mViewer->ImagesEmpty())) - { - GimmickDebugMessage(5, - "Showing images" - <ShowImages(); - // mViewer->Show(); - } - */ + ClearQueue(); diff --git a/src2/creaImageIOWxGimmickView.h b/src2/creaImageIOWxGimmickView.h index fa2b3ab..6a4f5b6 100644 --- a/src2/creaImageIOWxGimmickView.h +++ b/src2/creaImageIOWxGimmickView.h @@ -37,9 +37,6 @@ namespace creaImageIO /// Virtual destructor virtual ~WxGimmickView(); - /// Returns the selected Images so that they comply with the given parameter(<4D) - ///(overloaded from GimmickView) - vtkImageData* GetSelectedImage(int dim); /// Returns the selected files ///(overloaded from GimmickView) void GetSelectedFiles(std::vector& s); diff --git a/src2/creaImageIOWxTreeView.cpp b/src2/creaImageIOWxTreeView.cpp index b2998c7..64d395a 100644 --- a/src2/creaImageIOWxTreeView.cpp +++ b/src2/creaImageIOWxTreeView.cpp @@ -318,20 +318,13 @@ namespace creaImageIO data->node = *j; item.SetId(_id); - /* - std::string a=(*j)->GetAttribute(mLevelList[l].key[mColumnSelected-1]); - GimmickMessage(1, - "State Check: Att VAL" - <id = _id; item.SetData(data); _id++; - - long id = GetCtrl(l)->InsertItem(item); - + long id=GetCtrl(l)->InsertItem(item); + std::ostringstream oss; int n= GetTreeHandler()->GetNumberOfChildren(*j); diff --git a/src2/creaImageIOWxViewer.cpp b/src2/creaImageIOWxViewer.cpp index e9f0bdd..a566189 100644 --- a/src2/creaImageIOWxViewer.cpp +++ b/src2/creaImageIOWxViewer.cpp @@ -10,7 +10,6 @@ #include #include - using namespace crea; namespace creaImageIO @@ -31,7 +30,7 @@ namespace creaImageIO // void ShowImage(vtkImageData* v); // void StartIterator(); void OnExit(); - + private: //std::vector mImagesToPlay; //vtkImageViewer2* mViewer; @@ -79,7 +78,8 @@ namespace creaImageIO mCurrent = 0; - mPlayer = new WxViewerPlayer(this); //images, mViewer, mInteractor, this); + mPlayer = new WxViewerPlayer(this); //images, mViewer, mInteractor, this); + mPlayer->Create(); mPlayer->Run(); @@ -259,9 +259,9 @@ namespace creaImageIO // mInteractor->Refresh(); //mInteractor->Render(); - // mViewer->Render(); - - ::wxWakeUpIdle(); + // mViewer->Render(); + + //::wxWakeUpIdle(); } //================================================================ @@ -271,12 +271,19 @@ namespace creaImageIO // mInteractor->Refresh(); if(images.size()>0) { - mInteractor->Render(); +// mInteractor->Render(); } //mViewer->Render(); } + + //================================================================ + + //================================================== + void WxViewer::StopPlayer() + { + mPlayer->Delete(); + } - //================================================= // BEGIN_EVENT_TABLE(WxGimmickFrame, wxDialog) @@ -298,11 +305,19 @@ namespace creaImageIO GimmickMessage(1,"WxViewerPlayer::Entry()"<ShowNextImage(); - clock_t endwait; - endwait = clock () + 0.2 * CLOCKS_PER_SEC ; - while (clock() < endwait) {} + { + if(!TestDestroy()) + { + mWxViewer->ShowNextImage(); + mWxViewer->Refresh(); + clock_t endwait; + endwait = clock () + 0.2 * CLOCKS_PER_SEC ; + while (clock() < endwait) {} + } + else + { + break; + } /* for(i=mImagesToPlay.begin();i!=mImagesToPlay.end();++i) { @@ -315,7 +330,7 @@ namespace creaImageIO mParent->Refresh(); endwait = clock () + 0.2 * CLOCKS_PER_SEC ; while (clock() < endwait) {} - } + } */ @@ -331,8 +346,6 @@ namespace creaImageIO GimmickMessage(1,"WxViewerPlayer::OnExit() "<