From bfa17b7b695936881491421f80d3ba0ea601e666 Mon Sep 17 00:00:00 2001 From: Leland Lucius Date: Sun, 2 Aug 2020 12:30:36 -0500 Subject: [PATCH] AUP3: Select/unselect all by clicking column header in AutoRecovery dialog --- src/AutoRecoveryDialog.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/AutoRecoveryDialog.cpp b/src/AutoRecoveryDialog.cpp index ac42a2d0d..450b66847 100644 --- a/src/AutoRecoveryDialog.cpp +++ b/src/AutoRecoveryDialog.cpp @@ -49,6 +49,7 @@ private: void OnDiscardSelected(wxCommandEvent &evt); void OnRecoverSelected(wxCommandEvent &evt); void OnSkip(wxCommandEvent &evt); + void OnColumnClicked(wxListEvent &evt); void OnItemActivated(wxListEvent &evt); FilePaths mFiles; @@ -64,6 +65,7 @@ BEGIN_EVENT_TABLE(AutoRecoveryDialog, wxDialogWrapper) EVT_BUTTON(ID_DISCARD_SELECTED, AutoRecoveryDialog::OnDiscardSelected) EVT_BUTTON(ID_RECOVER_SELECTED, AutoRecoveryDialog::OnRecoverSelected) EVT_BUTTON(ID_SKIP, AutoRecoveryDialog::OnSkip) + EVT_LIST_COL_CLICK(ID_FILE_LIST, AutoRecoveryDialog::OnColumnClicked) EVT_LIST_ITEM_ACTIVATED(ID_FILE_LIST, AutoRecoveryDialog::OnItemActivated) END_EVENT_TABLE() @@ -327,6 +329,25 @@ void AutoRecoveryDialog::OnSkip(wxCommandEvent &WXUNUSED(evt)) EndModal(ID_SKIP); } +void AutoRecoveryDialog::OnColumnClicked(wxListEvent &evt) +{ + if (evt.GetColumn() != 0) + { + return; + } + + long item = -1; + while (true) + { + item = mFileList->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_DONTCARE); + if (item == wxNOT_FOUND) + { + break; + } + mFileList->CheckItem(item, !mFileList->IsItemChecked(item)); + } +} + void AutoRecoveryDialog::OnItemActivated(wxListEvent &evt) { long item = evt.GetIndex();