From 85b046a6401307b758efe14691d9f07b8f182825 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 20 Apr 2019 00:07:27 +0300 Subject: [PATCH] Finish reworking booster command invokation --- gui/builtinAdditionPanes/boosterView.py | 6 +++++- gui/builtinContextMenus/boosterSideEffects.py | 10 +++++++--- gui/fitCommands/gui/booster/toggleState.py | 1 + 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gui/builtinAdditionPanes/boosterView.py b/gui/builtinAdditionPanes/boosterView.py index 79b894b30..1e87bf21a 100644 --- a/gui/builtinAdditionPanes/boosterView.py +++ b/gui/builtinAdditionPanes/boosterView.py @@ -165,7 +165,11 @@ class BoosterView(d.Display): if col == self.getColIndex(State): fitID = self.mainFrame.getActiveFit() booster = self.boosters[self.GetItemData(row)] - self.mainFrame.command.Submit(cmd.GuiToggleBoosterStateCommand(fitID=fitID, position=self.original.index(booster))) + if booster in self.original: + position = self.original.index(booster) + self.mainFrame.command.Submit(cmd.GuiToggleBoosterStateCommand( + fitID=fitID, + position=position)) def spawnMenu(self, event): sel = self.GetFirstSelected() diff --git a/gui/builtinContextMenus/boosterSideEffects.py b/gui/builtinContextMenus/boosterSideEffects.py index 529a3d2f6..a17e16032 100644 --- a/gui/builtinContextMenus/boosterSideEffects.py +++ b/gui/builtinContextMenus/boosterSideEffects.py @@ -9,6 +9,7 @@ from service.settings import ContextMenuSettings class BoosterSideEffect(ContextMenu): + def __init__(self): self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.settings = ContextMenuSettings.getInstance() @@ -58,14 +59,17 @@ class BoosterSideEffect(ContextMenu): def handleMode(self, event): effect = self.effectIds[event.Id] - if effect is False or effect not in self.booster.sideEffects: + booster = self.booster + if effect is False or effect not in booster.sideEffects: event.Skip() return fitID = self.mainFrame.getActiveFit() fit = Fit.getInstance().getFit(fitID) - index = fit.boosters.index(self.booster) - self.mainFrame.command.Submit(cmd.GuiToggleBoosterSideEffectStateCommand(fitID, index, effect.effectID)) + if booster in fit.boosters: + index = fit.boosters.index(booster) + self.mainFrame.command.Submit(cmd.GuiToggleBoosterSideEffectStateCommand( + fitID=fitID, position=index, effectID=effect.effectID)) BoosterSideEffect.register() diff --git a/gui/fitCommands/gui/booster/toggleState.py b/gui/fitCommands/gui/booster/toggleState.py index 99fe35420..f47dc419b 100644 --- a/gui/fitCommands/gui/booster/toggleState.py +++ b/gui/fitCommands/gui/booster/toggleState.py @@ -8,6 +8,7 @@ from service.fit import Fit class GuiToggleBoosterStateCommand(wx.Command): + def __init__(self, fitID, position): wx.Command.__init__(self, True, 'Toggle Booster State') self.internalHistory = InternalCommandHistory()