def swapModule(self, x, y, modIdx): """Swap a module from fitting window with cargo""" sFit = Fit.getInstance() fit = sFit.getFit(self.mainFrame.getActiveFit()) dstRow, _ = self.HitTest((x, y)) mstate = wx.GetMouseState() # Gather module information to get position module = fit.modules[modIdx] if dstRow != -1: # we're swapping with cargo if mstate.CmdDown(): # if copying, append to cargo sFit.addCargo(self.mainFrame.getActiveFit(), module.item.ID) else: # else, move / swap sFit.moveCargoToModule(self.mainFrame.getActiveFit(), module.position, dstRow) else: # dragging to blank spot, append sFit.addCargo(self.mainFrame.getActiveFit(), module.item.ID) if not mstate.CmdDown(): # if not copying, remove module sFit.removeModule(self.mainFrame.getActiveFit(), module.position) wx.PostEvent( self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit(), action="moddel", typeID=module.item.ID))
def OnRadioSelect(self, event): fitID = self.mainFrame.getActiveFit() sFit = service.Fit.getInstance() sFit.toggleImplantSource( fitID, ImplantLocation.FIT if self.rbFit.GetValue() else ImplantLocation.CHARACTER) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
def addItem(self, event): sFit = service.Fit.getInstance() fitID = self.mainFrame.getActiveFit() trigger = sFit.addImplant(fitID, event.itemID) if trigger: wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) self.mainFrame.additionsPane.select("Implants") event.Skip()
def kbEvent(self, event): keycode = event.GetKeyCode() if keycode == wx.WXK_DELETE or keycode == wx.WXK_NUMPAD_DELETE: fitID = self.mainFrame.getActiveFit() sFit = Fit.getInstance() row = self.GetFirstSelected() if row != -1: sFit.removeCargo(fitID, self.GetItemData(row)) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) event.Skip()
def removeItem(self, event): row, _ = self.HitTest(event.Position) if row != -1: col = self.getColumn(event.Position) if col != self.getColIndex(State): fitID = self.mainFrame.getActiveFit() sFit = Fit.getInstance() cargo = self.cargo[self.GetItemData(row)] sFit.removeCargo(fitID, self.original.index(cargo)) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
def click(self, event): event.Skip() row, _ = self.HitTest(event.Position) if row != -1: col = self.getColumn(event.Position) if col == self.getColIndex(State): fitID = self.mainFrame.getActiveFit() sFit = service.Fit.getInstance() sFit.toggleImplant(fitID, row) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
def removeItem(self, event): row, _ = self.HitTest(event.Position) if row != -1: col = self.getColumn(event.Position) if col != self.getColIndex(State): fitID = self.mainFrame.getActiveFit() cFit = service.Fit.getInstance() implant = self.implants[self.GetItemData(row)] cFit.removeImplant(fitID, self.original.index(implant)) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
def handleListDrag(self, x, y, data): """ Handles dragging of items from various pyfa displays which support it data is list with two indices: data[0] is hard-coded str of originating source data[1] is typeID or index of data we want to manipulate """ if data[0] == "fitting": self.swapModule(x, y, int(data[1])) elif data[0] == "market": sFit = Fit.getInstance() sFit.addCargo(self.mainFrame.getActiveFit(), int(data[1]), 1) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit()))
def removeImplant(self, implant): fitID = self.mainFrame.getActiveFit() sFit = service.Fit.getInstance() sFit.removeImplant(fitID, self.original.index(implant)) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))