]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxTreeView.cpp
Message for remove patients action
[creaImageIO.git] / src2 / creaImageIOWxTreeView.cpp
index b583a7c0775f48d08515030467e4b3efb97ea8ce..06452660eb89014db47cd72ed6f2a41a213fbd55 100644 (file)
@@ -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<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 ";
@@ -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();
+       }
+       
 
   //================================================================
   //================================================================