Make fighter pane more reliable and change few already checked panels as well
This commit is contained in:
@@ -90,7 +90,11 @@ class BoosterView(d.Display):
|
||||
if keycode in (wx.WXK_DELETE, wx.WXK_NUMPAD_DELETE):
|
||||
row = self.GetFirstSelected()
|
||||
if row != -1:
|
||||
self.removeBooster(self.boosters[self.GetItemData(row)])
|
||||
try:
|
||||
booster = self.boosters[self.GetItemData(row)]
|
||||
except IndexError:
|
||||
return
|
||||
self.removeBooster(booster)
|
||||
|
||||
event.Skip()
|
||||
|
||||
@@ -148,7 +152,11 @@ class BoosterView(d.Display):
|
||||
if row != -1:
|
||||
col = self.getColumn(event.Position)
|
||||
if col != self.getColIndex(State):
|
||||
self.removeBooster(self.boosters[self.GetItemData(row)])
|
||||
try:
|
||||
booster = self.boosters[self.GetItemData(row)]
|
||||
except IndexError:
|
||||
return
|
||||
self.removeBooster(booster)
|
||||
|
||||
def removeBooster(self, booster):
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
@@ -164,7 +172,10 @@ class BoosterView(d.Display):
|
||||
col = self.getColumn(event.Position)
|
||||
if col == self.getColIndex(State):
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
booster = self.boosters[self.GetItemData(row)]
|
||||
try:
|
||||
booster = self.boosters[self.GetItemData(row)]
|
||||
except IndexError:
|
||||
return
|
||||
if booster in self.original:
|
||||
position = self.original.index(booster)
|
||||
self.mainFrame.command.Submit(cmd.GuiToggleBoosterStateCommand(
|
||||
@@ -174,7 +185,10 @@ class BoosterView(d.Display):
|
||||
def spawnMenu(self, event):
|
||||
sel = self.GetFirstSelected()
|
||||
if sel != -1:
|
||||
booster = self.boosters[sel]
|
||||
try:
|
||||
booster = self.boosters[sel]
|
||||
except IndexError:
|
||||
return None
|
||||
srcContext = "boosterItem"
|
||||
itemContext = "Booster"
|
||||
menu = ContextMenu.getMenu((booster,), (srcContext, itemContext))
|
||||
|
||||
@@ -88,7 +88,10 @@ class CargoView(d.Display):
|
||||
|
||||
if row != -1:
|
||||
data = wx.TextDataObject()
|
||||
dataStr = "cargo:{}".format(self.cargo[row].itemID)
|
||||
try:
|
||||
dataStr = "cargo:{}".format(self.cargo[row].itemID)
|
||||
except IndexError:
|
||||
return
|
||||
data.SetText(dataStr)
|
||||
|
||||
dropSource = wx.DropSource(self)
|
||||
@@ -102,7 +105,10 @@ class CargoView(d.Display):
|
||||
row = self.GetFirstSelected()
|
||||
if row != -1:
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
cargo = self.cargo[self.GetItemData(row)]
|
||||
try:
|
||||
cargo = self.cargo[self.GetItemData(row)]
|
||||
except IndexError:
|
||||
return
|
||||
self.mainFrame.command.Submit(cmd.GuiRemoveCargoCommand(fitID=fitID, itemID=cargo.itemID))
|
||||
event.Skip()
|
||||
|
||||
@@ -112,10 +118,18 @@ class CargoView(d.Display):
|
||||
fit = sFit.getFit(self.mainFrame.getActiveFit())
|
||||
dstRow, _ = self.HitTest((x, y))
|
||||
|
||||
if dstRow > -1:
|
||||
try:
|
||||
dstCargoItemID = getattr(self.cargo[dstRow], 'itemID', None)
|
||||
except IndexError:
|
||||
dstCargoItemID = None
|
||||
else:
|
||||
dstCargoItemID = None
|
||||
|
||||
self.mainFrame.command.Submit(cmd.GuiLocalModuleToCargoCommand(
|
||||
fitID=self.mainFrame.getActiveFit(),
|
||||
modPosition=fit.modules[modIdx].modPosition,
|
||||
cargoItemID=self.cargo[dstRow].itemID if dstRow > -1 else None,
|
||||
cargoItemID=dstCargoItemID,
|
||||
copy=wx.GetMouseState().cmdDown))
|
||||
|
||||
def fitChanged(self, event):
|
||||
@@ -156,13 +170,19 @@ class CargoView(d.Display):
|
||||
col = self.getColumn(event.Position)
|
||||
if col != self.getColIndex(State):
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
cargo = self.cargo[self.GetItemData(row)]
|
||||
try:
|
||||
cargo = self.cargo[self.GetItemData(row)]
|
||||
except IndexError:
|
||||
return
|
||||
self.mainFrame.command.Submit(cmd.GuiRemoveCargoCommand(fitID=fitID, itemID=cargo.itemID))
|
||||
|
||||
def spawnMenu(self, event):
|
||||
sel = self.GetFirstSelected()
|
||||
if sel != -1:
|
||||
cargo = self.cargo[sel]
|
||||
try:
|
||||
cargo = self.cargo[sel]
|
||||
except IndexError:
|
||||
return
|
||||
sMkt = Market.getInstance()
|
||||
sourceContext = "cargoItem"
|
||||
itemContext = sMkt.getCategoryByItem(cargo.item).name
|
||||
|
||||
@@ -169,13 +169,13 @@ class CommandView(d.Display):
|
||||
def get(self, row):
|
||||
if row == -1:
|
||||
return None
|
||||
|
||||
numFits = len(self.fits)
|
||||
|
||||
if numFits == 0:
|
||||
return None
|
||||
|
||||
return self.fits[row]
|
||||
try:
|
||||
return self.fits[row]
|
||||
except IndexError:
|
||||
return None
|
||||
|
||||
def click(self, event):
|
||||
event.Skip()
|
||||
|
||||
@@ -102,7 +102,10 @@ class DroneView(Display):
|
||||
self.hoveredRow = row
|
||||
self.hoveredColumn = col
|
||||
if row != -1 and col != -1 and col < len(self.DEFAULT_COLS):
|
||||
mod = self.drones[self.GetItemData(row)]
|
||||
try:
|
||||
mod = self.drones[self.GetItemData(row)]
|
||||
except IndexError:
|
||||
return
|
||||
if self.DEFAULT_COLS[col] == "Miscellanea":
|
||||
tooltip = self.activeColumns[col].getToolTip(mod)
|
||||
if tooltip is not None:
|
||||
@@ -120,7 +123,10 @@ class DroneView(Display):
|
||||
if keycode == wx.WXK_DELETE or keycode == wx.WXK_NUMPAD_DELETE:
|
||||
row = self.GetFirstSelected()
|
||||
if row != -1:
|
||||
drone = self.drones[self.GetItemData(row)]
|
||||
try:
|
||||
drone = self.drones[self.GetItemData(row)]
|
||||
except IndexError:
|
||||
return
|
||||
self.removeDroneStack(drone)
|
||||
|
||||
event.Skip()
|
||||
@@ -234,7 +240,10 @@ class DroneView(Display):
|
||||
col = self.getColumn(event.Position)
|
||||
if col != self.getColIndex(State):
|
||||
mstate = wx.GetMouseState()
|
||||
drone = self.drones[self.GetItemData(row)]
|
||||
try:
|
||||
drone = self.drones[self.GetItemData(row)]
|
||||
except IndexError:
|
||||
return
|
||||
if mstate.cmdDown or mstate.altDown:
|
||||
self.removeDroneStack(drone)
|
||||
else:
|
||||
@@ -273,7 +282,10 @@ class DroneView(Display):
|
||||
def spawnMenu(self, event):
|
||||
sel = self.GetFirstSelected()
|
||||
if sel != -1:
|
||||
drone = self.drones[sel]
|
||||
try:
|
||||
drone = self.drones[sel]
|
||||
except IndexError:
|
||||
return
|
||||
sMkt = Market.getInstance()
|
||||
sourceContext = "droneItem"
|
||||
itemContext = sMkt.getCategoryByItem(drone.item).name
|
||||
|
||||
@@ -162,7 +162,10 @@ class FighterDisplay(d.Display):
|
||||
self.hoveredRow = row
|
||||
self.hoveredColumn = col
|
||||
if row != -1 and col != -1 and col < len(self.DEFAULT_COLS):
|
||||
mod = self.fighters[self.GetItemData(row)]
|
||||
try:
|
||||
mod = self.fighters[self.GetItemData(row)]
|
||||
except IndexError:
|
||||
return
|
||||
if self.DEFAULT_COLS[col] == "Miscellanea":
|
||||
tooltip = self.activeColumns[col].getToolTip(mod)
|
||||
if tooltip is not None:
|
||||
@@ -180,7 +183,10 @@ class FighterDisplay(d.Display):
|
||||
if keycode == wx.WXK_DELETE or keycode == wx.WXK_NUMPAD_DELETE:
|
||||
row = self.GetFirstSelected()
|
||||
if row != -1:
|
||||
fighter = self.fighters[self.GetItemData(row)]
|
||||
try:
|
||||
fighter = self.fighters[self.GetItemData(row)]
|
||||
except IndexError:
|
||||
return
|
||||
self.removeFighter(fighter)
|
||||
|
||||
event.Skip()
|
||||
@@ -273,12 +279,17 @@ class FighterDisplay(d.Display):
|
||||
if row != -1:
|
||||
col = self.getColumn(event.Position)
|
||||
if col != self.getColIndex(State):
|
||||
fighter = self.fighters[self.GetItemData(row)]
|
||||
try:
|
||||
fighter = self.fighters[self.GetItemData(row)]
|
||||
except IndexError:
|
||||
return
|
||||
self.removeFighter(fighter)
|
||||
|
||||
def removeFighter(self, fighter):
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
self.mainFrame.command.Submit(cmd.GuiRemoveLocalFighterCommand(fitID, self.original.index(fighter)))
|
||||
if fighter in self.original:
|
||||
position = self.original.index(fighter)
|
||||
self.mainFrame.command.Submit(cmd.GuiRemoveLocalFighterCommand(fitID=fitID, position=position))
|
||||
|
||||
def click(self, event):
|
||||
event.Skip()
|
||||
@@ -287,14 +298,21 @@ class FighterDisplay(d.Display):
|
||||
col = self.getColumn(event.Position)
|
||||
if col == self.getColIndex(State):
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
fighter = self.fighters[row]
|
||||
self.mainFrame.command.Submit(cmd.GuiToggleLocalFighterStateCommand(fitID, self.original.index(fighter)))
|
||||
try:
|
||||
fighter = self.fighters[row]
|
||||
except IndexError:
|
||||
return
|
||||
if fighter in self.original:
|
||||
position = self.original.index(fighter)
|
||||
self.mainFrame.command.Submit(cmd.GuiToggleLocalFighterStateCommand(fitID=fitID, position=position))
|
||||
|
||||
def spawnMenu(self, event):
|
||||
sel = self.GetFirstSelected()
|
||||
if sel != -1:
|
||||
fighter = self.fighters[sel]
|
||||
|
||||
try:
|
||||
fighter = self.fighters[sel]
|
||||
except IndexError:
|
||||
return
|
||||
sMkt = Market.getInstance()
|
||||
sourceContext = "fighterItem"
|
||||
itemContext = sMkt.getCategoryByItem(fighter.item).name
|
||||
|
||||
@@ -137,12 +137,16 @@ class ImplantDisplay(d.Display):
|
||||
self.mainFrame.additionsPane.select("Implants")
|
||||
|
||||
def kbEvent(self, event):
|
||||
event.Skip()
|
||||
keycode = event.GetKeyCode()
|
||||
if keycode in (wx.WXK_DELETE, wx.WXK_NUMPAD_DELETE):
|
||||
row = self.GetFirstSelected()
|
||||
if row != -1:
|
||||
self.removeImplant(self.implants[self.GetItemData(row)])
|
||||
event.Skip()
|
||||
try:
|
||||
implant = self.implants[self.GetItemData(row)]
|
||||
except IndexError:
|
||||
return
|
||||
self.removeImplant(implant)
|
||||
|
||||
def fitChanged(self, event):
|
||||
sFit = Fit.getInstance()
|
||||
@@ -204,7 +208,11 @@ class ImplantDisplay(d.Display):
|
||||
if row != -1:
|
||||
col = self.getColumn(event.Position)
|
||||
if col != self.getColIndex(State):
|
||||
self.removeImplant(self.implants[self.GetItemData(row)])
|
||||
try:
|
||||
implant = self.implants[self.GetItemData(row)]
|
||||
except IndexError:
|
||||
return
|
||||
self.removeImplant(implant)
|
||||
|
||||
def removeImplant(self, implant):
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
@@ -226,7 +234,10 @@ class ImplantDisplay(d.Display):
|
||||
col = self.getColumn(event.Position)
|
||||
if col == self.getColIndex(State):
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
implant = self.implants[self.GetItemData(row)]
|
||||
try:
|
||||
implant = self.implants[self.GetItemData(row)]
|
||||
except IndexError:
|
||||
return
|
||||
if implant in self.original:
|
||||
position = self.original.index(implant)
|
||||
self.mainFrame.command.Submit(cmd.GuiToggleImplantStateCommand(
|
||||
@@ -243,7 +254,10 @@ class ImplantDisplay(d.Display):
|
||||
return
|
||||
|
||||
if sel != -1:
|
||||
implant = self.implants[sel]
|
||||
try:
|
||||
implant = self.implants[sel]
|
||||
except IndexError:
|
||||
return
|
||||
sMkt = Market.getInstance()
|
||||
sourceContext = "implantItem" if fit.implantSource == ImplantLocation.FIT else "implantItemChar"
|
||||
itemContext = sMkt.getCategoryByItem(implant.item).name
|
||||
|
||||
@@ -58,11 +58,15 @@ class FighterAbilities(ContextMenu):
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
fit = Fit.getInstance().getFit(fitID)
|
||||
if self.isProjected:
|
||||
self.mainFrame.command.Submit(cmd.GuiToggleProjectedFighterAbilityStateCommand(
|
||||
fitID=fitID, position=fit.projectedFighters.index(self.fighter), effectID=ability.effectID))
|
||||
if self.fighter in fit.projectedFighters:
|
||||
position = fit.projectedFighters.index(self.fighter)
|
||||
self.mainFrame.command.Submit(cmd.GuiToggleProjectedFighterAbilityStateCommand(
|
||||
fitID=fitID, position=position, effectID=ability.effectID))
|
||||
else:
|
||||
self.mainFrame.command.Submit(cmd.GuiToggleLocalFighterAbilityStateCommand(
|
||||
fitID=fitID, position=fit.fighters.index(self.fighter), effectID=ability.effectID))
|
||||
if self.fighter in fit.fighters:
|
||||
position = fit.fighters.index(self.fighter)
|
||||
self.mainFrame.command.Submit(cmd.GuiToggleLocalFighterAbilityStateCommand(
|
||||
fitID=fitID, position=position, effectID=ability.effectID))
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user