From dc55dbdf3637fa823bda79279e55f43e0066880a Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 25 Sep 2015 14:46:41 -0400 Subject: [PATCH] Polish some events --- gui/characterEditor.py | 34 ++++++++++++++++++++++++++-------- service/character.py | 5 ++--- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/gui/characterEditor.py b/gui/characterEditor.py index 1b96a9c83..c64470c5d 100644 --- a/gui/characterEditor.py +++ b/gui/characterEditor.py @@ -504,14 +504,20 @@ class ImplantsTreeView (wx.Panel): availableSizer.Add(self.availableImplantsTree, 1, wx.EXPAND) buttonSizer = wx.BoxSizer(wx.VERTICAL) - pmainSizer.Add(buttonSizer, 0, wx.TOP, 5) - + buttonSizer.AddStretchSpacer() self.btnAdd = GenBitmapButton(self, wx.ID_ADD, bitmapLoader.getBitmap("fit_add_small", "icons"), style = wx.BORDER_NONE) buttonSizer.Add(self.btnAdd, 0) self.btnRemove = GenBitmapButton(self, wx.ID_REMOVE, bitmapLoader.getBitmap("fit_delete_small", "icons"), style = wx.BORDER_NONE) buttonSizer.Add(self.btnRemove, 0) + buttonSizer.AddStretchSpacer() - self.pluggedImplantsTree = AvailableImplantsView(self, style=wx.LC_SINGLE_SEL) + pmainSizer.Add(buttonSizer, 0, wx.EXPAND, 5) + + self.pluggedImplantsTree = AvailableImplantsView(self) + + sChar = service.Character.getInstance() + charID = self.Parent.Parent.getActiveCharacter() + self.update(sChar.getImplants(charID)) pmainSizer.Add(self.pluggedImplantsTree, 1, wx.ALL | wx.EXPAND, 5) @@ -529,6 +535,7 @@ class ImplantsTreeView (wx.Panel): #Bind the event to replace dummies by real data self.availableImplantsTree.Bind(wx.EVT_TREE_ITEM_EXPANDING, self.expandLookup) + self.availableImplantsTree.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.addImplant) #Bind add & remove buttons self.btnAdd.Bind(wx.EVT_BUTTON, self.addImplant) @@ -562,6 +569,7 @@ class ImplantsTreeView (wx.Panel): parent = event.Item child, _ = tree.GetFirstChild(parent) text = tree.GetItemText(child) + if text == "dummy" or text == "itemdummy": tree.Delete(child) @@ -600,21 +608,31 @@ class ImplantsTreeView (wx.Panel): itemID = self.availableImplantsTree.GetPyData(root) sChar.addImplant(charID, itemID) self.update(sChar.getImplants(charID)) + else: + event.Skip() def removeImplant(self, event): pos = self.pluggedImplantsTree.GetFirstSelected() if pos != -1: sChar = service.Character.getInstance() charID = self.Parent.Parent.getActiveCharacter() - sChar.removeImplant(charID, self.implants[pos].slot) + sChar.removeImplant(charID, self.implants[pos]) self.update(sChar.getImplants(charID)) class AvailableImplantsView(d.Display): - DEFAULT_COLS = ["Base Name", - "attr:implantness"] + DEFAULT_COLS = ["attr:implantness", + "Base Icon", + "Base Name"] - def __init__(self, parent, style): - d.Display.__init__(self, parent, style=style) + def __init__(self, parent): + d.Display.__init__(self, parent, style=wx.LC_SINGLE_SEL) + + self.Bind(wx.EVT_LEFT_DCLICK, parent.removeImplant) + + #if "__WXGTK__" in wx.PlatformInfo: + # self.Bind(wx.EVT_RIGHT_UP, self.scheduleMenu) + #else: + # self.Bind(wx.EVT_RIGHT_DOWN, self.scheduleMenu) class APIView (wx.Panel): def __init__(self, parent): diff --git a/service/character.py b/service/character.py index 83e50bbaa..dccd5c9f7 100644 --- a/service/character.py +++ b/service/character.py @@ -344,12 +344,11 @@ class Character(object): def addImplant(self, charID, itemID): char = eos.db.getCharacter(charID) implant = eos.types.Implant(eos.db.getItem(itemID)) - char.implants.freeSlot(implant.slot) char.implants.append(implant) - def removeImplant(self, charID, slot): + def removeImplant(self, charID, implant): char = eos.db.getCharacter(charID) - char.implants.freeSlot(slot) + char.implants.remove(implant) def getImplants(self, charID): char = eos.db.getCharacter(charID)