From aa9f16d3ad66c8eccf9cdc7ddab6fc2400b9a363 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 13 Apr 2019 02:46:54 +0300 Subject: [PATCH] Make sure our handled lists are not sorted Because we rely on item positions within lists to identify modules for undo/redo stuff --- eos/effectHandlerHelpers.py | 3 +++ gui/builtinAdditionPanes/cargoView.py | 2 +- gui/builtinAdditionPanes/implantView.py | 2 +- gui/fitCommands/calc/fitAddImplant.py | 1 - gui/fitCommands/calc/fitRemoveImplant.py | 2 +- gui/fitCommands/helpers.py | 6 ++++++ 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/eos/effectHandlerHelpers.py b/eos/effectHandlerHelpers.py index 7e470d87d..1c21cf101 100644 --- a/eos/effectHandlerHelpers.py +++ b/eos/effectHandlerHelpers.py @@ -115,6 +115,9 @@ class HandledList(list): thing.itemID = 0 list.remove(self, thing) + def sort(self, *args, **kwargs): + raise NotImplementedError + class HandledModuleList(HandledList): diff --git a/gui/builtinAdditionPanes/cargoView.py b/gui/builtinAdditionPanes/cargoView.py index 4ec21383f..d324701a8 100644 --- a/gui/builtinAdditionPanes/cargoView.py +++ b/gui/builtinAdditionPanes/cargoView.py @@ -148,7 +148,7 @@ class CargoView(d.Display): return self.original = fit.cargo if fit is not None else None - self.cargo = stuff = fit.cargo if fit is not None else None + self.cargo = stuff = fit.cargo[:] if fit is not None else None if stuff is not None: stuff.sort(key=lambda c: (c.item.group.category.name, c.item.group.name, c.item.name)) diff --git a/gui/builtinAdditionPanes/implantView.py b/gui/builtinAdditionPanes/implantView.py index b28a3b6c5..c3a294467 100644 --- a/gui/builtinAdditionPanes/implantView.py +++ b/gui/builtinAdditionPanes/implantView.py @@ -156,7 +156,7 @@ class ImplantDisplay(d.Display): return self.original = fit.implants if fit is not None else None - self.implants = stuff = fit.appliedImplants if fit is not None else None + self.implants = stuff = fit.appliedImplants[:] if fit is not None else None if stuff is not None: stuff.sort(key=lambda implant: implant.slot) diff --git a/gui/fitCommands/calc/fitAddImplant.py b/gui/fitCommands/calc/fitAddImplant.py index 9cd228a40..b4547250d 100644 --- a/gui/fitCommands/calc/fitAddImplant.py +++ b/gui/fitCommands/calc/fitAddImplant.py @@ -56,7 +56,6 @@ class FitAddImplantCommand(wx.Command): cmd.Do() return False self.newPosition = fit.implants.index(newImplant) - eos.db.commit() return True diff --git a/gui/fitCommands/calc/fitRemoveImplant.py b/gui/fitCommands/calc/fitRemoveImplant.py index de9355539..049cc0c30 100644 --- a/gui/fitCommands/calc/fitRemoveImplant.py +++ b/gui/fitCommands/calc/fitRemoveImplant.py @@ -31,6 +31,6 @@ class FitRemoveImplantCommand(wx.Command): from .fitAddImplant import FitAddImplantCommand cmd = FitAddImplantCommand( fitID=self.fitID, - boosterInfo=self.savedBoosterInfo, + implantInfo=self.savedImplantInfo, position=self.position) return cmd.Do() diff --git a/gui/fitCommands/helpers.py b/gui/fitCommands/helpers.py index 1c67986f3..224c85b16 100644 --- a/gui/fitCommands/helpers.py +++ b/gui/fitCommands/helpers.py @@ -193,6 +193,9 @@ class BoosterInfo: sideEffect.active = self.sideEffects.get(sideEffect.effectID, sideEffect.active) return booster + def __repr__(self): + return makeReprStr(self, ['itemID', 'state', 'sideEffects']) + class ImplantInfo: @@ -220,6 +223,9 @@ class ImplantInfo: implant.active = self.state return implant + def __repr__(self): + return makeReprStr(self, ['itemID', 'state']) + class CargoInfo: