Show amount of items hidden in additions tabs

This commit is contained in:
DarkPhoenix
2019-10-01 22:22:10 +03:00
parent 0c2c0ac6ef
commit c94384acb8
12 changed files with 194 additions and 4 deletions

View File

@@ -226,3 +226,21 @@ class BoosterView(d.Display):
continue
boosters.append(booster)
return boosters
def getTabExtraText(self):
fitID = self.mainFrame.getActiveFit()
if fitID is None:
return None
sFit = Fit.getInstance()
fit = sFit.getFit(fitID)
if fit is None:
return None
opt = sFit.serviceFittingOptions["additionsLabels"]
# Amount of active boosters
if opt == 1:
return ' ({})'.format(len([b for b in fit.boosters if b.active]))
# Total amount of boosters
elif opt == 2:
return ' ({})'.format(len(fit.boosters))
else:
return None

View File

@@ -214,3 +214,18 @@ class CargoView(d.Display):
continue
cargos.append(cargo)
return cargos
def getTabExtraText(self):
fitID = self.mainFrame.getActiveFit()
if fitID is None:
return None
sFit = Fit.getInstance()
fit = sFit.getFit(fitID)
if fit is None:
return None
opt = sFit.serviceFittingOptions["additionsLabels"]
# Total amount of cargo items
if opt in (1, 2):
return ' ({})'.format(len(fit.cargo))
else:
return None

View File

@@ -247,3 +247,26 @@ class CommandView(d.Display):
self.mainFrame.command.Submit(cmd.GuiAddCommandFitsCommand(
fitID=self.mainFrame.getActiveFit(),
commandFitIDs=fitIDs))
def getTabExtraText(self):
fitID = self.mainFrame.getActiveFit()
if fitID is None:
return None
sFit = Fit.getInstance()
fit = sFit.getFit(fitID)
if fit is None:
return None
opt = sFit.serviceFittingOptions["additionsLabels"]
# Amount of active command fits
if opt == 1:
amount = 0
for commandFit in fit.commandFits:
info = commandFit.getCommandInfo(fitID)
if info is not None and info.active:
amount += 1
return ' ({})'.format(amount)
# Total amount of command fits
elif opt == 2:
return ' ({})'.format(len(fit.commandFits))
else:
return None

View File

@@ -337,3 +337,27 @@ class DroneView(Display):
continue
drones.append(drone)
return drones
def getTabExtraText(self):
fitID = self.mainFrame.getActiveFit()
if fitID is None:
return None
sFit = Fit.getInstance()
fit = sFit.getFit(fitID)
if fit is None:
return None
opt = sFit.serviceFittingOptions["additionsLabels"]
# Amount of active drones
if opt == 1:
amount = 0
for droneStack in fit.drones:
amount += droneStack.amountActive
return ' ({})'.format(int(amount))
# Total amount of drones
elif opt == 2:
amount = 0
for droneStack in fit.drones:
amount += droneStack.amount
return ' ({})'.format(int(amount))
else:
return None

View File

@@ -117,6 +117,24 @@ class FighterView(wx.Panel):
self.Refresh()
def getTabExtraText(self):
fitID = self.mainFrame.getActiveFit()
if fitID is None:
return None
sFit = Fit.getInstance()
fit = sFit.getFit(fitID)
if fit is None:
return None
opt = sFit.serviceFittingOptions["additionsLabels"]
# Amount of active fighter squads
if opt == 1:
return ' ({})'.format(len([f for f in fit.fighters if f.active]))
# Total amount of fighter squads
elif opt == 2:
return ' ({})'.format(len(fit.fighters))
else:
return None
class FighterDisplay(d.Display):

View File

@@ -101,6 +101,23 @@ class ImplantView(wx.Panel):
self.mainFrame.command.Submit(cmd.GuiChangeImplantLocationCommand(
fitID=fitID, source=ImplantLocation.FIT if self.rbFit.GetValue() else ImplantLocation.CHARACTER))
def getTabExtraText(self):
fitID = self.mainFrame.getActiveFit()
if fitID is None:
return None
sFit = Fit.getInstance()
fit = sFit.getFit(fitID)
if fit is None:
return None
opt = sFit.serviceFittingOptions["additionsLabels"]
# Amount of active implants
if opt == 1:
return ' ({})'.format(len([i for i in fit.appliedImplants if i.active]))
# Total amount of implants
elif opt == 2:
return ' ({})'.format(len(fit.appliedImplants))
else:
return None
class ImplantDisplay(d.Display):

View File

@@ -27,6 +27,7 @@ import gui.builtinAdditionPanes.droneView
import gui.display as d
import gui.fitCommands as cmd
import gui.globalEvents as GE
from eos.const import FittingModuleState
from eos.saveddata.drone import Drone as EosDrone
from eos.saveddata.fighter import Fighter as EosFighter
from eos.saveddata.fit import Fit as EosFit
@@ -397,3 +398,34 @@ class ProjectedView(d.Display):
fitID=self.mainFrame.getActiveFit(),
projectedFitIDs=fitIDs,
amount=1))
def getTabExtraText(self):
fitID = self.mainFrame.getActiveFit()
if fitID is None:
return None
sFit = Fit.getInstance()
fit = sFit.getFit(fitID)
if fit is None:
return None
opt = sFit.serviceFittingOptions["additionsLabels"]
# Amount of active projected items
if opt == 1:
amount = 0
for projectedFit in fit.projectedFits:
info = projectedFit.getProjectionInfo(fitID)
if info is not None and info.active:
amount += 1
amount += len([m for m in fit.projectedModules if m.state > FittingModuleState.OFFLINE])
amount += len([d for d in fit.projectedDrones if d.amountActive > 0])
amount += len([f for f in fit.projectedFighters if f.active])
return ' ({})'.format(amount)
# Total amount of projected items
elif opt == 2:
amount = 0
amount += len(fit.projectedFits)
amount += len(fit.projectedModules)
amount += len(fit.projectedDrones)
amount += len(fit.projectedFighters)
return ' ({})'.format(amount)
else:
return None