Move photoIndex to wherever the previously active photo was
This commit is contained in:
parent
ca5b2d94f5
commit
0b6de0840f
17
Program.cs
17
Program.cs
@ -714,9 +714,22 @@ public class Game : GameWindow {
|
|||||||
|
|
||||||
void FilterByRating(int rating) {
|
void FilterByRating(int rating) {
|
||||||
Console.WriteLine("filter to " + rating);
|
Console.WriteLine("filter to " + rating);
|
||||||
|
Photo previouslyActive = photos[photoIndex];
|
||||||
photos = allPhotos.Where(p => p.Rating >= rating).ToList();
|
photos = allPhotos.Where(p => p.Rating >= rating).ToList();
|
||||||
// TODO: put this closest to wherever the previously active photo was.
|
// Move photoIndex to wherever the previously active photo was, or if it
|
||||||
photoIndex = 0;
|
// was filtered out, to whichever unfiltered photo comes before it. This
|
||||||
|
// is O(n) in the length of allPhotos, but how bad can it be? :)
|
||||||
|
photoIndex = -1;
|
||||||
|
for (int i = 0; i < allPhotos.Count; i++) {
|
||||||
|
Photo candidate = allPhotos[i];
|
||||||
|
if (candidate.Rating >= rating) {
|
||||||
|
photoIndex++;
|
||||||
|
}
|
||||||
|
if (candidate == previouslyActive) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
photoIndex = Math.Max(0, photoIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnLoad() {
|
protected override void OnLoad() {
|
||||||
|
Loading…
Reference in New Issue
Block a user