Filter ships by race properly in stage2, ignore races filter state for races that aren't present in stage2

This commit is contained in:
HomeWorld
2011-05-16 15:43:16 +03:00
parent 454504816f
commit 12b2f41f74

View File

@@ -441,16 +441,26 @@ class ShipBrowser(wx.Panel):
ships.sort(key=self.raceNameKey)
racesList = []
subRacesFilter = {}
for ship in ships:
if ship.race:
if ship.race not in racesList:
racesList.append(ship.race)
for race,state in self.racesFilter.iteritems():
if race in racesList:
subRacesFilter[race] = self.racesFilter[race]
override = True
for race, state in self.racesFilter.iteritems():
for race, state in subRacesFilter.iteritems():
if state:
override = False
break
for ship in ships:
fits = sFit.countFitsWithShip(ship.ID)
filter = self.racesFilter[ship.race] if ship.race else True
filter = subRacesFilter[ship.race] if ship.race else True
if override:
filter = True
@@ -459,13 +469,9 @@ class ShipBrowser(wx.Panel):
if fits>0:
if filter:
self.lpane.AddWidget(ShipItem(self.lpane, ship.ID, (ship.name, fits), ship.race))
if ship.race not in racesList:
racesList.append(ship.race)
else:
if filter:
self.lpane.AddWidget(ShipItem(self.lpane, ship.ID, (ship.name, fits), ship.race))
if ship.race not in racesList:
racesList.append(ship.race)
self.raceselect.RebuildRaces(racesList)