X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOWxTreeView.cpp;h=06452660eb89014db47cd72ed6f2a41a213fbd55;hb=00dbbc177a9b5db334393734151e820a65f65efc;hp=b583a7c0775f48d08515030467e4b3efb97ea8ce;hpb=7e532afa6e1ab955d7c0fa63ea5d12eabc2504e5;p=creaImageIO.git diff --git a/src2/creaImageIOWxTreeView.cpp b/src2/creaImageIOWxTreeView.cpp index b583a7c..0645266 100644 --- a/src2/creaImageIOWxTreeView.cpp +++ b/src2/creaImageIOWxTreeView.cpp @@ -336,15 +336,17 @@ namespace creaImageIO //===================================================================== ///Removes selected nodes on last selected level // NOT SPECIFIC - void WxTreeView::RemoveSelected() + void WxTreeView::RemoveSelected(std::string &i_save) { - unsigned int tempLevel = mLastLevel; + bool erase=false; + + unsigned int tempLevel = mLastLevel; mLastLevel+=1; const std::vector& sel=GetSelected(mLastLevel+1); // if no selection, no remove action. if(sel.size() != 0) { - bool erase=false; + std::stringstream out; std::string levelName=GetTreeHandler()->GetTree().GetLevelDescriptor(mLastLevel).GetName(); out<<"Delete "; @@ -406,6 +408,17 @@ namespace creaImageIO mLastLevel = tempLevel; } + if (erase && mLastLevel == 1 && i_save == "0") + { + + RemoveAlertDlg *dial = new RemoveAlertDlg(this, crea::std2wx("Remove files"), wxSize(370,100)); + //dial->ShowModal(); + if (dial->ShowModal() == wxID_OK) + { + i_save = dial->isChecked() == false? "0" : "1"; + } + + } } @@ -1038,8 +1051,8 @@ namespace creaImageIO if(event.GetKeyCode() == WXK_DELETE) { wxBusyCursor busy; - - RemoveSelected(); + std::string temp = "0"; + RemoveSelected(temp); GetGimmickView()->ClearSelection(); } @@ -1171,6 +1184,44 @@ namespace creaImageIO return !found; } + //================================================================ + //================================================================ + + RemoveAlertDlg::RemoveAlertDlg(wxWindow *parent, + wxString title, + const wxSize& size) + : wxDialog( parent, + wxID_ANY, + title, + wxDefaultPosition, + size, + wxDEFAULT_DIALOG_STYLE) + { + wxBoxSizer *topsizer = new wxBoxSizer(wxVERTICAL); + + std::string out = "To reload deleted patient, you should synchornize your database before."; + wxTextCtrl *text = new wxTextCtrl(this, wxID_ANY,crea::std2wx(out),wxDefaultPosition, wxSize(500,20)); + mcheck = new wxCheckBox(this, 5478, "not display this warning again!"); + Connect( mcheck->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &RemoveAlertDlg::onCheck ); + wxSizer* buttonsSizer = this->CreateSeparatedButtonSizer(wxOK|wxCANCEL); + + topsizer->Add(text); + topsizer->Add(mcheck,0,wxGROW); + topsizer->Add(buttonsSizer,0,wxGROW); + SetSizer(topsizer, true); + mSave = false; + Layout(); + } + RemoveAlertDlg::~RemoveAlertDlg(){}; + bool RemoveAlertDlg::isChecked() + { + return mSave; + } + void RemoveAlertDlg::onCheck(wxCommandEvent &Event) + { + mSave = mcheck->IsChecked(); + } + //================================================================ //================================================================