|
From: Markus R. <god...@us...> - 2009-07-29 15:34:44
|
Module: performous
Branch: hiscore
Commit: e000615e428522783161eb52566b7fbb47505d24
Author: Markus Raab <un...@ma...>
Date: Mon Jul 27 15:49:37 2009 +0200
Restore Selection for Players
---
game/players.cc | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/game/players.cc b/game/players.cc
index 88adacf..572d8f7 100644
--- a/game/players.cc
+++ b/game/players.cc
@@ -62,6 +62,7 @@ void Players::setFilter(std::string const& val) {
void Players::filter_internal() {
m_dirty = false;
+ PlayerItem selection = current();
try {
players_t filtered;
@@ -73,7 +74,15 @@ void Players::filter_internal() {
players_t(m_players.begin(), m_players.end()).swap(m_filtered); // Invalid regex => copy everything
}
math_cover.reset();
- // TODO restore selection
+
+ // Restore old selection
+ int pos = 0;
+ if (selection.name != "") {
+ players_t::iterator it = std::find(m_filtered.begin(), m_filtered.end(), selection);
+ math_cover.setTarget(0, 0);
+ if (it != m_filtered.end()) pos = it - m_filtered.begin();
+ }
+ math_cover.setTarget(pos, size());
}
|