Exemplo n.º 1
0
    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))
Exemplo n.º 2
0
    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))
Exemplo n.º 3
0
    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()
Exemplo n.º 4
0
 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()
Exemplo n.º 5
0
 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))
Exemplo n.º 6
0
 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))
Exemplo n.º 7
0
 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))
Exemplo n.º 8
0
    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()))
Exemplo n.º 9
0
 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))