diff --git a/gui/builtinViewColumns/__init__.py b/gui/builtinViewColumns/__init__.py index 2ba808cd1..ad32ada35 100644 --- a/gui/builtinViewColumns/__init__.py +++ b/gui/builtinViewColumns/__init__.py @@ -1,4 +1,4 @@ -__all__ = ["moduleState", "moduleNameOrSlot", "attributeDisplay"] +__all__ = ["moduleState", "moduleNameOrSlot", "attributeDisplay", "maxRange"] columns = {} def registerColumn(column): diff --git a/gui/builtinViewColumns/attributeDisplay.py b/gui/builtinViewColumns/attributeDisplay.py index 6600815fd..b5eb833ab 100644 --- a/gui/builtinViewColumns/attributeDisplay.py +++ b/gui/builtinViewColumns/attributeDisplay.py @@ -30,9 +30,14 @@ class AttributeDisplay(ViewColumn): info = cAttribute.getAttributeInfo(params["attribute"]) self.info = info if params["showIcon"]: - iconFile = info.icon.iconFile if info.icon else None + if info.name == "power": + iconFile = "pg_small" + iconType = "icons" + else: + iconFile = info.icon.iconFile if info.icon else None + iconType = "pack" if iconFile: - bitmap = bitmapLoader.getBitmap(iconFile, "pack") + bitmap = bitmapLoader.getBitmap(iconFile, iconType) self.imageId = fittingView.imageList.Add(bitmap) else: self.imageId = -1 @@ -43,7 +48,11 @@ class AttributeDisplay(ViewColumn): self.columnText = info.displayName if info.displayName != "" else info.name def getText(self, mod): - return "%.2f" % mod.getModifiedItemAttr(self.info.name) + attr = mod.getModifiedItemAttr(self.info.name) + if attr: + return "%.2f" % attr + else: + return "" def getImageId(self, mod): return -1 diff --git a/gui/builtinViewColumns/maxRange.py b/gui/builtinViewColumns/maxRange.py new file mode 100644 index 000000000..b929aa445 --- /dev/null +++ b/gui/builtinViewColumns/maxRange.py @@ -0,0 +1,62 @@ +#=============================================================================== +# Copyright (C) 2010 Diego Duclos +# +# This file is part of pyfa. +# +# pyfa is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# pyfa is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with pyfa. If not, see . +#=============================================================================== + +from gui import builtinViewColumns +from gui.viewColumn import ViewColumn +from gui import bitmapLoader +import controller + +class MaxRange(ViewColumn): + name = "Max range" + def __init__(self, fittingView, params = None): + if params == None: + params = {"showIcon": True, + "displayName": False} + ViewColumn.__init__(self, fittingView) + cAttribute = controller.Attribute.getInstance() + info = cAttribute.getAttributeInfo("maxRange") + self.info = info + if params["showIcon"]: + iconFile = info.icon.iconFile if info.icon else None + if iconFile: + bitmap = bitmapLoader.getBitmap(iconFile, "pack") + self.imageId = fittingView.imageList.Add(bitmap) + else: + self.imageId = -1 + else: + self.imageId = -1 + + if params["displayName"] or self.imageId == -1: + self.columnText = info.displayName if info.displayName != "" else info.name + + def getText(self, mod): + maxRange = mod.maxRange + if maxRange: + return "%.2f" % mod.maxRange + else: + return "" + + def getImageId(self, mod): + return -1 + + def getParameters(self): + return (("displayName", bool, False), + ("showIcon", bool, True)) + +builtinViewColumns.registerColumn(MaxRange) diff --git a/gui/fittingView.py b/gui/fittingView.py index b295059a9..3e9795226 100644 --- a/gui/fittingView.py +++ b/gui/fittingView.py @@ -23,8 +23,13 @@ import gui.builtinViewColumns from gui.builtinViewColumns import * class FittingView(wx.ListCtrl): - DEFAULT_COLS = ["Module state", "Module name/slot"] - DEFAULT_ATTR_COLS = ["power", "cpu", "capacitorNeed", "maxRange", "trackingSpeed"] + DEFAULT_COLS = ["Module state", + "Module name/slot", + "attr:power", + "attr:cpu", + "attr:capacitorNeed", + "attr:trackingSpeed", + "Max range"] def __init__(self, parent): listStyle = wx.LC_REPORT | wx.BORDER_NONE @@ -39,16 +44,15 @@ class FittingView(wx.ListCtrl): i = 0 for colName in FittingView.DEFAULT_COLS: - col = gui.builtinViewColumns.getColumn(colName)(self, None) - self.addColumn(i, col) - i += 1 + if colName[0:5] == "attr:": + attrName = colName[5:] + params = {"showIcon": True, + "displayName": False, + "attribute": attrName} + col = gui.builtinViewColumns.getColumn("Attribute Display")(self, params) + else: + col = gui.builtinViewColumns.getColumn(colName)(self, None) - for attrName in FittingView.DEFAULT_ATTR_COLS: - params = {"showIcon": True, - "displayName": False, - "attribute": attrName} - - col = gui.builtinViewColumns.getColumn("Attribute Display")(self, params) self.addColumn(i, col) i += 1