diff --git a/clientgui/AdvancedFrame.cpp b/clientgui/AdvancedFrame.cpp index 6227a2ffdb..aabcd797bd 100644 --- a/clientgui/AdvancedFrame.cpp +++ b/clientgui/AdvancedFrame.cpp @@ -204,6 +204,7 @@ BEGIN_EVENT_TABLE (CAdvancedFrame, CBOINCBaseFrame) EVT_TIMER(ID_REFRESHSTATETIMER, CAdvancedFrame::OnRefreshState) EVT_TIMER(ID_FRAMERENDERTIMER, CAdvancedFrame::OnFrameRender) EVT_NOTEBOOK_PAGE_CHANGED(ID_FRAMENOTEBOOK, CAdvancedFrame::OnNotebookSelectionChanged) + EVT_MENU(ID_SELECTALL, CAdvancedFrame::OnSelectAll) EVT_SIZE(CAdvancedFrame::OnSize) EVT_MOVE(CAdvancedFrame::OnMove) #ifdef __WXMAC__ @@ -751,14 +752,17 @@ bool CAdvancedFrame::CreateMenus() { if (m_pOldMenubar) { delete m_pOldMenubar; } - + + m_Shortcuts[0].Set(wxACCEL_CTRL, (int)'A', ID_SELECTALL); + #ifdef __WXMAC__ // Set HELP key as keyboard shortcut - m_Shortcuts[0].Set(wxACCEL_NORMAL, WXK_HELP, ID_HELPBOINCMANAGER); - m_pAccelTable = new wxAcceleratorTable(1, m_Shortcuts); - SetAcceleratorTable(*m_pAccelTable); + m_Shortcuts[1].Set(wxACCEL_NORMAL, WXK_HELP, ID_HELPBOINCMANAGER); #endif + m_pAccelTable = new wxAcceleratorTable(2, m_Shortcuts); + SetAcceleratorTable(*m_pAccelTable); + wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::CreateMenu - Function End")); return true; } @@ -1954,13 +1958,27 @@ void CAdvancedFrame::OnNotebookSelectionChanged(wxNotebookEvent& event) { pView = wxDynamicCast(pwndNotebookPage, CBOINCBaseView); wxASSERT(pView); - + pView->RefreshTaskPane(); event.Skip(); wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnNotebookSelectionChanged - Function End")); } + +void CAdvancedFrame::OnSelectAll(wxCommandEvent& WXUNUSED(event)) { + CBOINCBaseView* pView = wxDynamicCast(m_pNotebook->GetPage(m_pNotebook->GetSelection()), CBOINCBaseView); + CBOINCListCtrl* lCtrl = pView->GetListCtrl(); + + if (lCtrl == NULL) return; + + int count = lCtrl->GetItemCount(); + for (int i = 0; i < count; i++) { + lCtrl->SelectRow(i, true); + } +} + + void CAdvancedFrame::UpdateActivityModeControls( CC_STATUS& status ) { wxMenuBar* pMenuBar = GetMenuBar(); wxASSERT(pMenuBar); diff --git a/clientgui/AdvancedFrame.h b/clientgui/AdvancedFrame.h index 0be874df18..376dbd2b60 100644 --- a/clientgui/AdvancedFrame.h +++ b/clientgui/AdvancedFrame.h @@ -66,6 +66,8 @@ public: void OnGPUSelection( wxCommandEvent& event ); void OnNetworkSelection( wxCommandEvent& event ); + void OnSelectAll( wxCommandEvent& event ); + void OnMenuOpening( wxMenuEvent &event); void OnOptions( wxCommandEvent& event ); void OnPreferences( wxCommandEvent& event ); @@ -110,7 +112,7 @@ public: protected: virtual int _GetCurrentViewPage(); - wxAcceleratorEntry m_Shortcuts[1]; // For HELP keyboard shortcut + wxAcceleratorEntry m_Shortcuts[2]; // For keyboard shortcut wxAcceleratorTable* m_pAccelTable; private: diff --git a/clientgui/Events.h b/clientgui/Events.h index 0fa6ddd22b..58783cc935 100644 --- a/clientgui/Events.h +++ b/clientgui/Events.h @@ -152,6 +152,9 @@ #define ID_TASK_NEWS_BOINC 9700 #define ID_TASK_NEWS_BOINCWEBSITE 9701 +// Shortcuts +#define ID_SELECTALL 9800 + // // Simple GUI //