]> Creatis software - creaImageIO.git/commitdiff
Message for remove patients action
authorFrederic Cervenansky <Frederic.Cervenansky@creatis.insa-lyon.fr>
Fri, 13 Nov 2009 14:06:00 +0000 (14:06 +0000)
committerFrederic Cervenansky <Frederic.Cervenansky@creatis.insa-lyon.fr>
Fri, 13 Nov 2009 14:06:00 +0000 (14:06 +0000)
src2/creaImageIOSettings.cpp
src2/creaImageIOSettings.h
src2/creaImageIOTreeView.h
src2/creaImageIOWxGimmickView.cpp
src2/creaImageIOWxTreeView.cpp
src2/creaImageIOWxTreeView.h

index 69ec28290af24d922aa56e6d2d010ef74d66b060..770a80215678d69e318623d8b4c76892dee824f1 100644 (file)
@@ -39,6 +39,7 @@ namespace creaImageIO
                Keys.push_back(SETTINGS_DBPATH);
                Keys.push_back(SETTINGS_SYNC_FREQ);
                Keys.push_back(SETTINGS_COPY_PATH);
+               Keys.push_back(SETTINGS_REMOVE_PATIENT_DISPLAY);
                readSettings(Keys, sets);
 
     }
@@ -61,6 +62,7 @@ namespace creaImageIO
        m_SettingsMap[SETTINGS_DBPATH] = "";
        m_SettingsMap[SETTINGS_DICOM_LIBRARY] = "gdcm";
           m_SettingsMap[SETTINGS_COPY_PATH] = m_SettingsFileName.substr(0,m_SettingsFileName.find_last_of('\\')+1)+"Copied files";
+          m_SettingsMap[SETTINGS_REMOVE_PATIENT_DISPLAY] = "0";
        writeSettingsFile();
    }
 
index 2e4eeb6aeda1a17d722de94cedf28dfa0a7bab7e..8d13d366ae8348143566079dab4073ec7ce0e687 100644 (file)
@@ -1,11 +1,12 @@
 #include <boost/program_options.hpp>
 #include <map>
 
-#define SETTINGS_DICOM_LIBRARY "<DICOM Library>"
-#define SETTINGS_SYNC_EVENT     "<syncro_event>"
-#define SETTINGS_SYNC_FREQ       "<syncro_frequency>"
-#define SETTINGS_DBPATH       "<dbpath>"
-#define SETTINGS_COPY_PATH       "<copy_path>"
+#define SETTINGS_DICOM_LIBRARY                 "<DICOM Library>"
+#define SETTINGS_SYNC_EVENT                            "<syncro_event>"
+#define SETTINGS_SYNC_FREQ                             "<syncro_frequency>"
+#define SETTINGS_DBPATH                                        "<dbpath>"
+#define SETTINGS_COPY_PATH                             "<copy_path>"
+#define SETTINGS_REMOVE_PATIENT_DISPLAY "<remove_patient>"
 
 
 namespace creaImageIO
index a1cb4b2e4cfac5f0ff75df1e651703aa2bf17cdd..bf1298a6b10279cb734c1fb5a48e76f8b01673eb 100644 (file)
@@ -33,7 +33,7 @@ namespace creaImageIO
       { GimmickError("INTERNAL ERROR : TreeView::UpdateLevel not overloaded");}
 
          ///Removes selected nodes
-         virtual void RemoveSelected( )
+         virtual void RemoveSelected(std::string &i_save )
          { GimmickError("INTERNAL ERROR : TreeView::RemoveSelected not overloaded");}
 
          ///Validates the selected images
index d961fcaed852ca5047dda541f7ac29a40fc66735..3b9e04187c78ed2b8435c7370c886b5fd0d34fda 100644 (file)
@@ -686,7 +686,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();
   }
   //=================================================
@@ -738,6 +741,7 @@ namespace creaImageIO
 
     if (dialog.ShowModal() == wxID_OK)
     {
+                       wxBusyCursor busy;
         int sel=dialog.GetSelection();
        bool repair=false;
        bool checkAttributes=false;
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();
+       }
+       
 
   //================================================================
   //================================================================
index 586eea2b5a8aaba9d4e65b7ffbc13b09de0ed7d5..001bf26214a53c261fc6b442bfdaac288c9ce9e5 100644 (file)
@@ -49,7 +49,7 @@ namespace creaImageIO
       virtual void UpdateLevel( int );
 
       ///Removes selected nodes on given level
-      virtual void RemoveSelected();
+         virtual void RemoveSelected(std::string &i_save);
 
          ///Returns the last selected level
          virtual unsigned int GetLastSelectedLevel(){return mLastLevel;}
@@ -194,6 +194,22 @@ namespace creaImageIO
     // EO class WxTreeView
     //=====================================================================
 
+       class RemoveAlertDlg : public wxDialog
+       {
+       public:
+               RemoveAlertDlg(wxWindow *parent, 
+                                              wxString title,    
+                                                  const wxSize& size);
+               ~RemoveAlertDlg();
+
+               bool isChecked();
+
+       private :
+               void onCheck(wxCommandEvent &Event);
+               bool mSave;
+               wxCheckBox *mcheck;
+
+       };
 
 
 } // EO namespace creaImageIO