diff --git a/src/gui/search/SearchController.cpp b/src/gui/search/SearchController.cpp index 03cc0f29e..b281549b1 100644 --- a/src/gui/search/SearchController.cpp +++ b/src/gui/search/SearchController.cpp @@ -177,6 +177,17 @@ void SearchController::Selected(int saveID, bool selected) searchModel->DeselectSave(saveID); } +void SearchController::SelectAllSaves() +{ + if (!Client::Ref().GetAuthUser().UserID) + return; + if (searchModel->GetShowOwn() || + Client::Ref().GetAuthUser().UserElevation == User::ElevationModerator || + Client::Ref().GetAuthUser().UserElevation == User::ElevationAdmin) + searchModel->SelectAllSaves(); + +} + void SearchController::InstantOpen(bool instant) { instantOpen = instant; diff --git a/src/gui/search/SearchController.h b/src/gui/search/SearchController.h index ed7c6af3c..c1f6de635 100644 --- a/src/gui/search/SearchController.h +++ b/src/gui/search/SearchController.h @@ -42,6 +42,7 @@ public: void ShowOwn(bool show); void ShowFavourite(bool show); void Selected(int saveID, bool selected); + void SelectAllSaves(); void InstantOpen(bool instant); void OpenSave(int saveID); void OpenSave(int saveID, int saveDate); diff --git a/src/gui/search/SearchModel.cpp b/src/gui/search/SearchModel.cpp index af8551316..b921971d1 100644 --- a/src/gui/search/SearchModel.cpp +++ b/src/gui/search/SearchModel.cpp @@ -199,6 +199,14 @@ void SearchModel::SelectSave(int saveID) notifySelectedChanged(); } +void SearchModel::SelectAllSaves() +{ + for (int i = 0; i < saveList.size(); i++) + { + SelectSave(saveList[i]->id); + } +} + void SearchModel::DeselectSave(int saveID) { bool changed = false; diff --git a/src/gui/search/SearchModel.h b/src/gui/search/SearchModel.h index c73627f5d..2c2a46a26 100644 --- a/src/gui/search/SearchModel.h +++ b/src/gui/search/SearchModel.h @@ -69,6 +69,7 @@ public: std::vector GetSelected() { return selected; } void ClearSelected() { selected.clear(); notifySelectedChanged(); } void SelectSave(int saveID); + void SelectAllSaves(); void DeselectSave(int saveID); void Update(); }; diff --git a/src/gui/search/SearchView.cpp b/src/gui/search/SearchView.cpp index 48285f082..449d2399c 100644 --- a/src/gui/search/SearchView.cpp +++ b/src/gui/search/SearchView.cpp @@ -654,6 +654,8 @@ void SearchView::OnKeyPress(int key, int scan, bool repeat, bool shift, bool ctr return; if (key == SDLK_ESCAPE) c->Exit(); + else if (key == SDLK_a && ctrl) + c->SelectAllSaves(); else if (key == SDLK_LCTRL || key == SDLK_RCTRL) c->InstantOpen(true); }