From 2bca3ddcc87b04e833e2c390c4ea005f05d375d6 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 7 Jul 2015 00:12:36 -0400 Subject: [PATCH] GUI support (also made regular checkboxes pretty for drones/implant/etc) --- eos/saveddata/fit.py | 11 ++++++++++- gui/builtinViewColumns/state.py | 21 +++++++++++++++++---- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 12d9b4cd8..b0b94c2df 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -117,6 +117,7 @@ class Fit(object): self.__capUsed = None self.__capRecharge = None self.__calculatedTargets = [] + self.__projectionInfo = None self.factorReload = False self.fleet = None self.boostsFits = set() @@ -207,6 +208,14 @@ class Fit(object): def projectedFits(self): return self.__projectedFits + @property + def projectionInfo(self): + return self.__projectionInfo + + @projectionInfo.setter + def projectionInfo(self, projectionInfo): + self.__projectionInfo = projectionInfo + @property def projectedDrones(self): return self.__projectedDrones @@ -452,7 +461,7 @@ class Fit(object): item.calculateModifiedAttributes(targetFit, runTime, True) for fit in self.projectedFits: - if fit.projectionInfo.amount: + if fit.projectionInfo.amount > 0: fit.calculateModifiedAttributes(self, withBoosters=withBoosters, dirtyStorage=dirtyStorage) def fill(self): diff --git a/gui/builtinViewColumns/state.py b/gui/builtinViewColumns/state.py index d26c46443..c10a0f77f 100644 --- a/gui/builtinViewColumns/state.py +++ b/gui/builtinViewColumns/state.py @@ -20,7 +20,7 @@ from gui.viewColumn import ViewColumn from gui import bitmapLoader import wx -from eos.types import Drone, Module, Rack +from eos.types import Drone, Module, Rack, Fit from eos.types import State as State_ class State(ViewColumn): @@ -49,8 +49,14 @@ class State(ViewColumn): return State_.getName(mod.state).title() def getImageId(self, stuff): + generic_active = self.fittingView.imageList.GetImageIndex("state_%s_small" % State_.getName(1).lower(), "icons") + generic_inactive = self.fittingView.imageList.GetImageIndex("state_%s_small" % State_.getName(-1).lower(), "icons") + if isinstance(stuff, Drone): - return self.checkedId if stuff.amountActive > 0 else self.uncheckedId + if stuff.amountActive > 0: + return generic_active + else: + return generic_inactive elif isinstance(stuff, Rack): return -1 elif isinstance(stuff, Module): @@ -58,11 +64,18 @@ class State(ViewColumn): return -1 else: return self.fittingView.imageList.GetImageIndex("state_%s_small" % State_.getName(stuff.state).lower(), "icons") + elif isinstance(stuff, Fit): + if stuff.projectionInfo is None: + return -1 + if stuff.projectionInfo.amount > 0: + return generic_active + return generic_inactive else: active = getattr(stuff, "active", None) if active is None: return -1 - else: - return self.checkedId if active else self.uncheckedId + if active: + return generic_active + return generic_inactive State.register()