]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxTreeView.cpp
clean-up
[creaImageIO.git] / src2 / creaImageIOWxTreeView.cpp
index 8e350cc73eda33ec0154c647b39fb2fff2417579..03c5b0d3d3dab15af21147d39eab9ca01d53d01d 100644 (file)
@@ -5,7 +5,6 @@
 #include <wx/gdicmn.h>
 #include <boost/date_time/gregorian/gregorian.hpp>
 
-
 //=====================================================================
 namespace creaImageIO
 {
@@ -336,15 +335,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<tree::Node*>& 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 ";
@@ -380,9 +381,9 @@ namespace creaImageIO
                          {
                            needRefresh=true;
                          }
-                         tree::Node* n= (tree::Node*)(*i);
+                         //tree::Node* n = new (tree::Node*)(*i);
                          GetTreeHandler()->LoadChildren((*i),4);
-                         GetGimmickView()->AddIgnoreFile(n);
+                         GetGimmickView()->AddIgnoreFile(*i);
                          GetTreeHandler()->Remove(*i);
                      }
                    
@@ -406,6 +407,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 +1050,8 @@ namespace creaImageIO
          if(event.GetKeyCode() == WXK_DELETE)
          {
                   wxBusyCursor busy;
-                 
-                  RemoveSelected();
+                  std::string temp = "0";
+                  RemoveSelected(temp);
                   GetGimmickView()->ClearSelection();
          }
                  
@@ -1171,6 +1183,47 @@ 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 synchronize your database before.");  // JPR
+               //wxTextCtrl *text = new wxTextCtrl(this, wxID_ANY,crea::std2wx(out),wxDefaultPosition, wxSize(500,20));
+               wxTextCtrl *text = new wxTextCtrl(this, wxID_ANY,
+                                       _T("To reload deleted patient, you should synchronize your database before."),
+                                       wxDefaultPosition, wxSize(500,20));
+               mcheck = new wxCheckBox(this, 5478, _T("Do 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();
+       }
+       
 
   //================================================================
   //================================================================