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:
DarkPhoenix
2019-04-15 18:44:26 +03:00
parent 4c0f88cdfa
commit 3fa5ac7858
8 changed files with 60 additions and 23 deletions

View File

@@ -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()

View File

@@ -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

View File

@@ -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")

View File

@@ -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()