From 00dbbc177a9b5db334393734151e820a65f65efc Mon Sep 17 00:00:00 2001 From: Frederic Cervenansky Date: Fri, 13 Nov 2009 14:06:00 +0000 Subject: [PATCH] Message for remove patients action --- src2/creaImageIOSettings.cpp | 2 + src2/creaImageIOSettings.h | 11 +++--- src2/creaImageIOTreeView.h | 2 +- src2/creaImageIOWxGimmickView.cpp | 6 ++- src2/creaImageIOWxTreeView.cpp | 61 ++++++++++++++++++++++++++++--- src2/creaImageIOWxTreeView.h | 18 ++++++++- 6 files changed, 87 insertions(+), 13 deletions(-) diff --git a/src2/creaImageIOSettings.cpp b/src2/creaImageIOSettings.cpp index 69ec282..770a802 100644 --- a/src2/creaImageIOSettings.cpp +++ b/src2/creaImageIOSettings.cpp @@ -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(); } diff --git a/src2/creaImageIOSettings.h b/src2/creaImageIOSettings.h index 2e4eeb6..8d13d36 100644 --- a/src2/creaImageIOSettings.h +++ b/src2/creaImageIOSettings.h @@ -1,11 +1,12 @@ #include #include -#define SETTINGS_DICOM_LIBRARY "" -#define SETTINGS_SYNC_EVENT "" -#define SETTINGS_SYNC_FREQ "" -#define SETTINGS_DBPATH "" -#define SETTINGS_COPY_PATH "" +#define SETTINGS_DICOM_LIBRARY "" +#define SETTINGS_SYNC_EVENT "" +#define SETTINGS_SYNC_FREQ "" +#define SETTINGS_DBPATH "" +#define SETTINGS_COPY_PATH "" +#define SETTINGS_REMOVE_PATIENT_DISPLAY "" namespace creaImageIO diff --git a/src2/creaImageIOTreeView.h b/src2/creaImageIOTreeView.h index a1cb4b2..bf1298a 100644 --- a/src2/creaImageIOTreeView.h +++ b/src2/creaImageIOTreeView.h @@ -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 diff --git a/src2/creaImageIOWxGimmickView.cpp b/src2/creaImageIOWxGimmickView.cpp index d961fca..3b9e041 100644 --- a/src2/creaImageIOWxGimmickView.cpp +++ b/src2/creaImageIOWxGimmickView.cpp @@ -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; 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(); + } + //================================================================ //================================================================ diff --git a/src2/creaImageIOWxTreeView.h b/src2/creaImageIOWxTreeView.h index 586eea2..001bf26 100644 --- a/src2/creaImageIOWxTreeView.h +++ b/src2/creaImageIOWxTreeView.h @@ -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 -- 2.45.0