diff --git a/eos/db/saveddata/character.py b/eos/db/saveddata/character.py index ee4e9de08..f3d4d1e13 100644 --- a/eos/db/saveddata/character.py +++ b/eos/db/saveddata/character.py @@ -48,6 +48,7 @@ mapper(Character, characters_table, Implant, collection_class = HandledImplantBoosterList, cascade='all,delete-orphan', + backref='character', single_parent=True, primaryjoin = charImplants_table.c.charID == characters_table.c.ID, secondaryjoin = charImplants_table.c.implantID == Implant.ID, diff --git a/gui/builtinViewColumns/baseIcon.py b/gui/builtinViewColumns/baseIcon.py index 30cbf6fb2..868c73a21 100644 --- a/gui/builtinViewColumns/baseIcon.py +++ b/gui/builtinViewColumns/baseIcon.py @@ -2,7 +2,7 @@ from gui import builtinViewColumns from gui.viewColumn import ViewColumn from gui.bitmapLoader import BitmapLoader import wx -from eos.types import Drone, Fit, Module, Slot, Rack +from eos.types import Drone, Fit, Module, Slot, Rack, Implant class BaseIcon(ViewColumn): name = "Base Icon" @@ -21,6 +21,11 @@ class BaseIcon(ViewColumn): return self.shipImage if isinstance(stuff, Rack): return -1 + if isinstance(stuff, Implant): + if stuff.character: # if it has a character as it's parent + return self.fittingView.imageList.GetImageIndex("character_small", "gui") + else: + return self.shipImage if isinstance(stuff, Module): if stuff.isEmpty: return self.fittingView.imageList.GetImageIndex("slot_%s_small" % Slot.getName(stuff.slot).lower(), "gui") diff --git a/gui/builtinViewColumns/baseName.py b/gui/builtinViewColumns/baseName.py index e5f59a9e2..edb45044e 100644 --- a/gui/builtinViewColumns/baseName.py +++ b/gui/builtinViewColumns/baseName.py @@ -22,7 +22,7 @@ from gui.viewColumn import ViewColumn import gui.mainFrame import wx -from eos.types import Drone, Cargo, Fit, Module, Slot, Rack +from eos.types import Drone, Cargo, Fit, Module, Slot, Rack, Implant import service class BaseName(ViewColumn): @@ -61,6 +61,8 @@ class BaseName(ViewColumn): return "%s Slot" % Slot.getName(stuff.slot).capitalize() else: return stuff.item.name + elif isinstance(stuff, Implant): + return stuff.item.name else: item = getattr(stuff, "item", stuff) diff --git a/gui/implantView.py b/gui/implantView.py index d87838113..1672b5b83 100644 --- a/gui/implantView.py +++ b/gui/implantView.py @@ -27,6 +27,7 @@ import globalEvents as GE class ImplantView(d.Display): DEFAULT_COLS = ["State", "attr:implantness", + "Base Icon", "Base Name"] def __init__(self, parent): @@ -65,7 +66,7 @@ class ImplantView(d.Display): fit = sFit.getFit(event.fitID) self.original = fit.implants if fit is not None else None - self.implants = stuff = fit.implants if fit is not None else None + self.implants = stuff = fit.appliedImplants if fit is not None else None if stuff is not None: stuff.sort(key=lambda implant: implant.slot) if event.fitID != self.lastFitId: