X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOGimmickView.cpp;h=a1c29cea8c6fc223e86d69bb716c5b9f70a2cc1a;hb=60257912f98339ad44b500d6d4b700cca8e8daa9;hp=6084c7d7ff3d097ba932bbdbc78803fdbc6860fb;hpb=6cac83c30fb8c3cd89c41685078eccff6e952a50;p=creaImageIO.git diff --git a/src2/creaImageIOGimmickView.cpp b/src2/creaImageIOGimmickView.cpp index 6084c7d..a1c29ce 100644 --- a/src2/creaImageIOGimmickView.cpp +++ b/src2/creaImageIOGimmickView.cpp @@ -1,6 +1,10 @@ #include #include +#include "boost/filesystem.hpp" + +namespace fs = boost::filesystem; + namespace creaImageIO { //====================================================================== @@ -181,6 +185,7 @@ namespace creaImageIO { mMessage="Selection OK !"; } + mValidationSignal(valid); SetMessage(mMessage); return valid; } @@ -264,8 +269,17 @@ namespace creaImageIO } } - + //====================================================================== + //====================================================================== + ///Requests the reading of an image + void GimmickView::RequestReading(tree::Node* n, + int prio, int selection_index) + { + ImageEventType t(n,0,selection_index); + mImageEventMap[n->GetAttribute("FullFileName")] = t; + mReader.Request(this,n->GetAttribute("FullFileName"),prio); + } //====================================================================== //====================================================================== @@ -274,17 +288,54 @@ namespace creaImageIO MultiThreadImageReaderUser::EventType e, vtkImageData* image) { + GimmickDebugMessage(7, + "MultiThreadImageReader event : "<::iterator i; - i = mImageFileNameToNode.find(filename); - if (i!=mImageFileNameToNode.end()) + ImageEventTypeMap::iterator i; + i = mImageEventMap.find(filename); + if (i!=mImageEventMap.end()) { - mImageEventQueue.push_back(ImageEventType(i->second,image)); + GimmickDebugMessage(5, + "Pushing image of file '"<second); + e.image = image; + mImageEventQueue.push_back(e); + mImageEventMap.erase(i); } + } + else if (e==Error) + { + std::string mess="ERROR: MultiThreadImageReader: Cannot read image in file "; + mess+=filename; + mess+="\n"; + GimmickMessage(1,mess); + } + + else if (e==ImageUnloaded) + { + std::string mess="Unloaded image in file "; + mess+=filename; + mess+="\n"; + GimmickMessage(1,mess); + } + } + + //==================================================================== + + //==================================================================== + void GimmickView::ConnectValidationObserver(ValidationCallbackType callback) + { + mValidationSignal.connect(callback); }