X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOWxGimmickView.cpp;h=0cab09e7fb79d2a49630e6922e13b093f0831421;hb=a00e6172593c713640aaa9bf1e61db6200231a0f;hp=ddf43617e16dad7484f5f54dfbba364caf1d3cbb;hpb=6af4831637e7dbc737fc8a42ae1395ee94658103;p=creaImageIO.git diff --git a/src2/creaImageIOWxGimmickView.cpp b/src2/creaImageIOWxGimmickView.cpp index ddf4361..0cab09e 100644 --- a/src2/creaImageIOWxGimmickView.cpp +++ b/src2/creaImageIOWxGimmickView.cpp @@ -8,6 +8,8 @@ #include #include #include +#include +#include using namespace crea; // Icons @@ -30,9 +32,13 @@ using namespace crea; #if defined(BUILD_BRUKER) #include "bruker2dicom.h" #endif + + +#include #ifdef _DEBUG #define new DEBUG_NEW #endif + namespace creaImageIO { @@ -106,18 +112,18 @@ namespace creaImageIO mCurrentDirectory = std2wx(gimmick->GetHomeDirectory()); // Connect the AddProgress callback - gimmick->ConnectAddProgressObserver - ( boost::bind( &WxGimmickView::OnAddProgress , this, _1 ) ); + gimmick->ConnectAddProgressObserver + ( boost::bind( &WxGimmickView::OnAddProgress , this, _1 ) ); // Create the list of icons (mIcon) CreateIconList(); // Global sizer - wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); + msizer = new wxBoxSizer(wxVERTICAL); // Create the tool bar CreateToolBar(); - sizer->Add( mToolBar, 0, wxGROW, 0); + msizer->Add( mToolBar, 0, wxGROW, 0); // Split part below toolbar into notebook for views and panel // for preview, messages... @@ -139,7 +145,7 @@ namespace creaImageIO // Bottom panel mBottomPanel = new wxPanel(mSplitter,-1); - wxBoxSizer *bottom_sizer = new wxBoxSizer(wxVERTICAL); //HORIZONTAL); + mbottom_sizer = new wxBoxSizer(wxVERTICAL); //HORIZONTAL); // Previewer @@ -151,15 +157,15 @@ namespace creaImageIO mViewer->StartPlayer(); - bottom_sizer->Add(mViewer,1,wxGROW,1); + mbottom_sizer->Add(mViewer,1,wxGROW,1); // mViewer->Show(); mText = new wxStaticText(mBottomPanel, wxID_ANY, wxT("Welcome to Gimmick!")); - bottom_sizer->Add(mText,0,wxGROW,0); + mbottom_sizer->Add(mText,0,wxGROW,0); - mBottomPanel->SetSizer(bottom_sizer); + mBottomPanel->SetSizer(mbottom_sizer); // Splitting int hsize = size.GetHeight(); @@ -171,17 +177,17 @@ namespace creaImageIO mSplitter->SplitHorizontally( mNotebook, mBottomPanel, top_minsize); - sizer->Add( mSplitter, 1, wxGROW, 0); + msizer->Add( mSplitter, 1, wxGROW, 0); mProgressDialog=0; - SetSizer( sizer ); + SetSizer( msizer ); SetAutoLayout(true); Layout(); - mListener=new Listener(); - mListener->ConnectObserver(boost::bind( &WxGimmickView::OnDriveMount, this, _1 ) ); - mListener->Create(); - mListener->Run(); - mListener->Pause(); + //mListener=new Listener(); + //mListener->ConnectObserver(boost::bind( &WxGimmickView::OnDriveMount, this, _1 ) ); + //mListener->Create(); + // mListener->Run(); + // mListener->Pause(); mConstructed = true; } @@ -196,10 +202,8 @@ namespace creaImageIO GimmickDebugMessage(1,"WxGimmickView::~WxGimmickView" <IsAlive()) - { - mListener->Delete(); - } + delete mViewer; + //if(mListener->IsAlive()) { mListener->Delete(); } } //====================================================================== @@ -461,6 +465,7 @@ namespace creaImageIO DisplayAddSummary(); } mViewer->StartPlayer(); + delete FD; } @@ -647,6 +652,7 @@ namespace creaImageIO //================================================== +#if defined(WIN32) //================================================== void WxGimmickView::OnInternalIdle() { @@ -663,7 +669,15 @@ namespace creaImageIO mViewer->RefreshIfNecessary(); } } - +#else + void WxGimmickView::UpdateWindowUI(long flags) + { + if(mViewer) + { + mViewer->RefreshIfNecessary(); + } + } +#endif //================================================== //================================================== @@ -684,7 +698,10 @@ namespace creaImageIO { //TODO Select current tree handler wxBusyCursor busy; - GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->RemoveSelected(); + std::string remove; + mGimmick->GetSetting(SETTINGS_REMOVE_PATIENT_DISPLAY,remove); + GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->RemoveSelected(remove); + mGimmick->UpdateSetting(SETTINGS_REMOVE_PATIENT_DISPLAY,remove); ClearSelection(); } //================================================= @@ -694,7 +711,7 @@ namespace creaImageIO void WxGimmickView::AddIgnoreFile(tree::Node* toRemove) { mGimmick->RemoveFile(crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection())),toRemove); - GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->UpdateLevel(1); + // GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->UpdateLevel(1); } //================================================= @@ -736,6 +753,7 @@ namespace creaImageIO if (dialog.ShowModal() == wxID_OK) { + wxBusyCursor busy; int sel=dialog.GetSelection(); bool repair=false; bool checkAttributes=false; @@ -900,7 +918,7 @@ namespace creaImageIO nb->AddPage( pacs, crea::std2wx("Connect to PACS") ); //Third page: CD/DVD Watch - WxListenerPanel* cdWatch=new WxListenerPanel(nb,dial, this, mListener->IsPaused()); + WxListenerPanel* cdWatch=new WxListenerPanel(nb,dial, this,true);//, mListener->IsPaused()); nb->AddPage( cdWatch, crea::std2wx("CD/DVD") ); //Fourth page: Selection of attributes to show @@ -1010,6 +1028,46 @@ namespace creaImageIO dial->ShowModal(); } + //======================================================================== + void WxGimmickView::DumpTags(std::string i_filename) + { + WxDumpPanel* pan= new WxDumpPanel (this,i_filename); + pan->ShowModal(); + } + + //======================================================================== + void WxGimmickView::ExportToStorage(const std::vector i_filenames) + { + std::vector storages; + Gimmick::TreeHandlerMapType::iterator it = mGimmick->GetTreeHandlerMap().begin(); + for(;it != mGimmick->GetTreeHandlerMap().end(); it++) + { + storages.push_back(it->first); + } + + WxExportDlg* exp= new WxExportDlg(this,storages); + if ( exp->ShowModal() ==ID_EXPORT_OK) + { + std::string storage = exp->GetStorage(); + mProgressDialog = + new wxProgressDialog(_T("Adding file(s)"), + _T(""), + 1000, + this, + wxPD_ELAPSED_TIME | + // wxPD_ESTIMATED_TIME | + // wxPD_REMAINING_TIME | + wxPD_CAN_ABORT ); + mGimmick->AddFiles(storage,i_filenames); + mProgressDialog->Pulse(_T("Updating view...")); + UpdateTreeViewLevel(storage,1); + delete mProgressDialog; + DisplayAddSummary(); + } + } + + + //======================================================================== void WxGimmickView::OnFieldsEdited(tree::Node* node, const std::string& name, const std::string& key, const std::string& val) {