From: caballero Date: Thu, 2 Apr 2009 11:28:39 +0000 (+0000) Subject: Fixed Multi-thread reader start and stop errors and shows non private columns. X-Git-Tag: EED.02Oct2009~122 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=6cab96fd8ca99341053a1a6f8a9286940c535313;p=creaImageIO.git Fixed Multi-thread reader start and stop errors and shows non private columns. --- diff --git a/src2/creaImageIOGimmickView.cpp b/src2/creaImageIOGimmickView.cpp index 16ad8ff..c24a7c3 100644 --- a/src2/creaImageIOGimmickView.cpp +++ b/src2/creaImageIOGimmickView.cpp @@ -87,6 +87,7 @@ namespace creaImageIO void GimmickView::Initialize() { mImageExtent=0; + mReaderStarted=false; } //====================================================================== @@ -337,7 +338,11 @@ namespace creaImageIO void GimmickView::RequestReading(tree::Node* n, int prio, int selection_index, ImagePointerHolder *p) { - mReader.Start(); + if(!mReaderStarted) + { + mReader.Start(); + mReaderStarted=true; + } ImageEventType t(n,selection_index, p); mImageEventMap[n->GetAttribute("FullFileName")] = t; mReader.Request(this,n->GetAttribute("FullFileName"),prio); diff --git a/src2/creaImageIOGimmickView.h b/src2/creaImageIOGimmickView.h index a87602a..751e5ba 100644 --- a/src2/creaImageIOGimmickView.h +++ b/src2/creaImageIOGimmickView.h @@ -162,9 +162,14 @@ namespace creaImageIO typedef std::deque ImageEventQueueType; //ImageEventQueueType mImageEventQueue; + ///The current image extent ImageExtent* mImageExtent; + ///The validation signal ValidationSignalType mValidationSignal; + ///Boolean that determines if the selection is valid bool valid; + ///Boolean that determines if the reader has been started + bool mReaderStarted; }; // EO class GimmickView diff --git a/src2/creaImageIOMultiThreadImageReader.cpp b/src2/creaImageIOMultiThreadImageReader.cpp index 85bbb4b..9d2c090 100644 --- a/src2/creaImageIOMultiThreadImageReader.cpp +++ b/src2/creaImageIOMultiThreadImageReader.cpp @@ -34,6 +34,7 @@ namespace creaImageIO private: ImageReader mReader; MultiThreadImageReader* mMultiThreadImageReader; + }; //===================================================================== @@ -114,7 +115,10 @@ namespace creaImageIO i!=mThreadedImageReaderList.end(); i++) { - (*i)->Delete(); + if((*i)->IsAlive()) + { + (*i)->Delete(); + } } mThreadedImageReaderList.clear(); // Wait a little to be sure that all threads have stopped diff --git a/src2/creaImageIOWxTreeView.cpp b/src2/creaImageIOWxTreeView.cpp index 422a4f5..c5eab8f 100644 --- a/src2/creaImageIOWxTreeView.cpp +++ b/src2/creaImageIOWxTreeView.cpp @@ -124,6 +124,10 @@ namespace creaImageIO GimmickDebugMessage(5,"Creating column "<GetName() <GetFlags()!=creaImageIO::tree::AttributeDescriptor::PRIVATE) + { + if(a->GetName()=="UNKNOWN") { title = "#"; @@ -142,7 +146,7 @@ namespace creaImageIO level.key.push_back(a->GetKey()); // ctrl->SetColumnWidth(col, wxLIST_AUTOSIZE ); col++; - + } } @@ -665,7 +669,7 @@ namespace creaImageIO { break; } - if(GetCtrl(level)->GetItemState(item, wxLIST_STATE_SELECTED)==0 && item!=0) + if(GetCtrl(level)->GetItemState(item, wxLIST_STATE_SELECTED)==0 /*&& item!=0*/) { adr = GetCtrl(level)->GetItemData(item); nod = ((ItemData*)adr)->node;