As commands now commit/recalc even in case of failure (as they do not know about exact reason of failure and we're not sure if rollback was succeeded), do not run them for every item added via double-click
This commit is contained in:
@@ -19,14 +19,16 @@
|
||||
|
||||
# noinspection PyPackageRequirements
|
||||
import wx
|
||||
|
||||
import gui.display as d
|
||||
import gui.fitCommands as cmd
|
||||
import gui.globalEvents as GE
|
||||
from gui.builtinMarketBrowser.events import ItemSelected, ITEM_SELECTED
|
||||
from gui.builtinMarketBrowser.events import ITEM_SELECTED, ItemSelected
|
||||
from gui.builtinViewColumns.state import State
|
||||
from gui.contextMenu import ContextMenu
|
||||
from gui.utils.staticHelpers import DragDropHelper
|
||||
from service.fit import Fit
|
||||
import gui.fitCommands as cmd
|
||||
from service.market import Market
|
||||
|
||||
|
||||
class BoosterViewDrop(wx.DropTarget):
|
||||
@@ -124,10 +126,13 @@ class BoosterView(d.Display):
|
||||
event.Skip()
|
||||
|
||||
def addItem(self, event):
|
||||
sFit = Fit.getInstance()
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
item = Market.getInstance().getItem(event.itemID, eager='group')
|
||||
if item is None or not item.isBooster:
|
||||
event.Skip()
|
||||
return
|
||||
|
||||
fit = sFit.getFit(fitID)
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
fit = Fit.getInstance().getFit(fitID)
|
||||
|
||||
if not fit or fit.isStructure:
|
||||
event.Skip()
|
||||
|
||||
@@ -206,11 +206,13 @@ class DroneView(Display):
|
||||
event.Skip()
|
||||
|
||||
def addItem(self, event):
|
||||
sFit = Fit.getInstance()
|
||||
item = Market.getInstance().getItem(event.itemID, eager='group.category')
|
||||
if item is None or not item.isDrone:
|
||||
event.Skip()
|
||||
return
|
||||
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
|
||||
fit = sFit.getFit(fitID)
|
||||
|
||||
fit = Fit.getInstance().getFit(fitID)
|
||||
if not fit or fit.isStructure:
|
||||
event.Skip()
|
||||
return
|
||||
|
||||
@@ -257,8 +257,12 @@ class FighterDisplay(d.Display):
|
||||
event.Skip()
|
||||
|
||||
def addItem(self, event):
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
item = Market.getInstance().getItem(event.itemID, eager='group.category')
|
||||
if item is None or not item.isFighter:
|
||||
event.Skip()
|
||||
return
|
||||
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
if self.mainFrame.command.Submit(cmd.GuiAddLocalFighterCommand(fitID, event.itemID)):
|
||||
self.mainFrame.additionsPane.select("Fighters")
|
||||
|
||||
|
||||
@@ -175,10 +175,13 @@ class ImplantDisplay(d.Display):
|
||||
event.Skip()
|
||||
|
||||
def addItem(self, event):
|
||||
sFit = Fit.getInstance()
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
item = Market.getInstance().getItem(event.itemID, eager='group.category')
|
||||
if item is None or not item.isImplant:
|
||||
event.Skip()
|
||||
return
|
||||
|
||||
fit = sFit.getFit(fitID)
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
fit = Fit.getInstance().getFit(fitID)
|
||||
|
||||
if not fit or fit.isStructure:
|
||||
event.Skip()
|
||||
|
||||
@@ -357,8 +357,11 @@ class FittingView(d.Display):
|
||||
itemID = event.itemID
|
||||
fitID = self.activeFitID
|
||||
if fitID is not None:
|
||||
sFit = Fit.getInstance()
|
||||
if sFit.isAmmo(itemID):
|
||||
item = Market.getInstance().getItem(event.itemID, eager='group.category')
|
||||
if item is None or not (item.isModule or item.isSubsystem):
|
||||
event.Skip()
|
||||
return
|
||||
if Fit.getInstance().isAmmo(itemID):
|
||||
# If we've selected ammo, then apply to the selected module(s)
|
||||
modules = []
|
||||
sel = self.GetFirstSelected()
|
||||
|
||||
@@ -37,6 +37,7 @@ class GuiCargoToModuleCommand(wx.Command):
|
||||
result = False
|
||||
|
||||
# We're trying to move a charge from cargo to a slot. Use SetCharge command (don't respect move vs copy)
|
||||
# todo: replace with item.ischarge, broken for now
|
||||
if sFit.isAmmo(cargo.itemID):
|
||||
result = self.internalHistory.Submit(CalcChangeModuleChargesCommand(self.fitID, False, {module.modPosition: cargo.itemID}))
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user