X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FcreaImageIOWxGimmickView.cpp;h=0ee66e527742783db26a6974ce6f4980a4252c02;hb=bae8afe7ee037a3368be7060c3a0708582e7d413;hp=3bdc716a035281c5246112fb3053f221db311d09;hpb=9f388912ec5438d32d4da941152eaae550f796ed;p=creaImageIO.git diff --git a/src/creaImageIOWxGimmickView.cpp b/src/creaImageIOWxGimmickView.cpp index 3bdc716..0ee66e5 100644 --- a/src/creaImageIOWxGimmickView.cpp +++ b/src/creaImageIOWxGimmickView.cpp @@ -1,8 +1,34 @@ -#include +/* +# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Santé) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ +*/ + + + #include -#include #include -#include #include #include #include @@ -13,6 +39,10 @@ #include #include +#if defined(_WIN32) +#pragma warning(disable: 4996) +#endif + using namespace crea; // Icons #include "icons/accept.xpm" @@ -171,6 +201,7 @@ namespace creaImageIO mBottomPanel->SetSizer(mbottom_sizer); // Splitting + /// \TODO fix warning: unused variable hsize int hsize = size.GetHeight(); int top_minsize = 450; @@ -327,7 +358,7 @@ namespace creaImageIO bool mult, const std::string out_model) { // First we select the files - std::vector files; + std::vector files; std::string db_name = crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection())); GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->GetSelectedAsString(files); @@ -338,6 +369,7 @@ namespace creaImageIO mGimmick->GetSetting(SETTINGS_OUTPUT_ASK, asking); mGimmick->GetSetting(SETTINGS_OUTPUT_DIM, dim); + if (asking == "true") { // display the output dialog box @@ -350,37 +382,35 @@ namespace creaImageIO dim = dlg->getDim(); mGimmick->UpdateSetting(SETTINGS_OUTPUT_ASK, dlg->getAsking()); mGimmick->UpdateSetting(SETTINGS_OUTPUT_DIM, dim); - } - else - { + } else { return; } - } - else - { + } else { } sscanf(dim.c_str(),"%d",&i_dim_out); - // Next we create the structure for dicom output infos OutputAttr Oattr; +//EED 01/09/2014 + if (i_dim_out==2) + { + Oattr.mult=true; + } // i_dim_out + + Oattr.db = crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection())); if(i_attr.empty()) { // We don't send informations! - } - else if( i_attr.size() == 1 && i_attr.front() == "ALL") + } else if( i_attr.size() == 1 && i_attr.front() == "ALL") { // we send all database Oattr.inside.push_back("ALL"); - } - else if( (i_attr.size() == 1 && i_attr.front() != "ALL") + } else if( (i_attr.size() == 1 && i_attr.front() != "ALL") || (i_attr.size() >1) ) { mGimmick->fillVectInfos(i_attr, Oattr); - } - else - { + } else { // nothing } @@ -502,7 +532,8 @@ namespace creaImageIO new wxProgressDialog(_T("Adding file(s)"), _T(""), 1000, - this, +// this, + NULL, wxPD_ELAPSED_TIME | // wxPD_ESTIMATED_TIME | // wxPD_REMAINING_TIME | @@ -514,7 +545,7 @@ namespace creaImageIO mProgressDialog->Pulse(_T("Updating view...")); UpdateTreeViewLevel(crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection())),1); - delete mProgressDialog; + killProgress(); DisplayAddSummary(); } @@ -552,7 +583,10 @@ namespace creaImageIO new wxProgressDialog(_T("Adding directory"), _T(""), NumberFilesToAdd(dirname,recurse), - this, + +//EED this, + NULL, + wxPD_ELAPSED_TIME | wxPD_SMOOTH | // wxPD_ESTIMATED_TIME | @@ -564,7 +598,7 @@ namespace creaImageIO mProgressDialog->Pulse(_T("Updating view...")); UpdateTreeViewLevel(crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection())),1); - delete mProgressDialog; + killProgress(); DisplayAddSummary(); } mViewer->StartPlayer(); @@ -586,7 +620,7 @@ namespace creaImageIO { if (recursive) { - nb += NumberFilesToAdd(itr->string(), recursive); + nb += NumberFilesToAdd(itr->path().string(), recursive); } } else @@ -602,7 +636,7 @@ namespace creaImageIO bool WxGimmickView::isNeedRecursive(std::string i_name) { boost::filesystem::directory_iterator iter(i_name), end_iter; - bool bfindir = false; + //bool bfindir = false; for(; iter != end_iter; ++iter) { if(boost::filesystem::is_directory(*iter)) @@ -827,13 +861,18 @@ namespace creaImageIO //================================================= void WxGimmickView::AddDir(std::string dirName) { - mProgressDialog = new wxProgressDialog(_T("Adding directory"),_T(""),1000,this,wxPD_ELAPSED_TIME |wxPD_CAN_ABORT ); + mProgressDialog = new wxProgressDialog(_T("Adding directory"),_T(""),1000, + +//EED this, + NULL, + + wxPD_ELAPSED_TIME |wxPD_CAN_ABORT ); mCurrentDirectory = crea::std2wx(dirName); mGimmick->AddDir(crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection())),dirName,true); mProgressDialog->Pulse(_T("Updating view...")); UpdateTreeViewLevel(crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection())),1); - delete mProgressDialog; + killProgress(); DisplayAddSummary(); } @@ -947,7 +986,7 @@ namespace creaImageIO if (dial->GetReturnCode() == wxID_OK) { #if defined(BUILD_BRUKER) - if (nb->GetSelection()==0)//Selection: Bruker Image Reader + if (nb->GetSelection()==0)//Selection: Bruker Image Reader { std::string inputDir = crea::wx2std(gimmickTools->getInputDir()); std::string outputDir = crea::wx2std(gimmickTools->getOutputDir()); @@ -968,7 +1007,12 @@ namespace creaImageIO if (addToDB) { std::cout <<"after addToDB" << std::endl; - mProgressDialog = new wxProgressDialog(_T("Adding directory"),_T(""),1000,this,wxPD_ELAPSED_TIME |wxPD_CAN_ABORT ); + mProgressDialog = new wxProgressDialog(_T("Adding directory"),_T(""),1000, + +//EED this, + NULL, + + wxPD_ELAPSED_TIME |wxPD_CAN_ABORT ); std::cout <<"after new wxProgressDialog" << std::endl; mCurrentDirectory = gimmickTools->getOutputDir(); std::cout <<"after gimmickTools->getOutputDir[" <Pulse" << std::endl; UpdateTreeViewLevel(crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection())),1); std::cout <<"after UpdateTreeViewLevel" << std::endl; - delete mProgressDialog; + killProgress(); std::cout <<"after delete mProgressDialog" << std::endl; DisplayAddSummary(); std::cout <<"after dDisplayAddSummary" << std::endl; @@ -1090,7 +1134,10 @@ namespace creaImageIO new wxProgressDialog(_T("Adding drive"), _T(""), 1000, - this, + +//EED this, + NULL, + wxPD_ELAPSED_TIME | // wxPD_ESTIMATED_TIME | // wxPD_REMAINING_TIME | @@ -1100,7 +1147,7 @@ namespace creaImageIO mProgressDialog->Pulse(_T("Updating view...")); UpdateTreeViewLevel(crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection())),1); - delete mProgressDialog; + killProgress(); DisplayAddSummary(); mViewer->StartPlayer(); } @@ -1164,7 +1211,10 @@ namespace creaImageIO new wxProgressDialog(_T("Adding file(s)"), _T(""), 1000, - this, + +//EED this, + NULL, + wxPD_ELAPSED_TIME | // wxPD_ESTIMATED_TIME | // wxPD_REMAINING_TIME | @@ -1172,7 +1222,7 @@ namespace creaImageIO mGimmick->AddFiles(storage,i_filenames); mProgressDialog->Pulse(_T("Updating view...")); UpdateTreeViewLevel(storage,1); - delete mProgressDialog; + killProgress(); DisplayAddSummary(); } } @@ -1199,10 +1249,14 @@ namespace creaImageIO // std::cout << "OnAddProgress "<Pulse(s)) - { - p.SetStop(); - } + + if(mProgressDialog != 0) + { + if (!mProgressDialog->Pulse(s)) + { + p.SetStop(); + } + } // std::cout << "OnAddProgress ok"<GetAddProgress(); - std::stringstream mess; - mess << "Dirs \tscanned\t: " << p.GetNumberScannedDirs() << "\n"; - mess << "Files\tscanned\t: " << p.GetNumberScannedFiles() << "\n"; - mess << "Files\thandled\t: " << p.GetNumberHandledFiles() << "\n\n"; - mess << "Files\tadded \t: " << p.GetNumberAddedFiles() << "\n\n"; - time_t end; + std::stringstream mess(mGimmick->getSummary()); + time_t end; time(&end); mess << "time to scan :" << difftime(end,mstart) << "sec"; wxMessageBox(std2wx(mess.str()),_T("Addition result"),wxOK,this); @@ -1293,6 +1342,13 @@ namespace creaImageIO } } + void WxGimmickView::killProgress() + { + mProgressDialog->Resume(); + mProgressDialog->Destroy(); + mProgressDialog = 0; + } + //================================================= //=================================================