diff --git a/gui/fitCommands/calc/fitRemoveModule.py b/gui/fitCommands/calc/fitRemoveModule.py index 5134f2f1b..924d42462 100644 --- a/gui/fitCommands/calc/fitRemoveModule.py +++ b/gui/fitCommands/calc/fitRemoveModule.py @@ -29,7 +29,14 @@ class FitRemoveModuleCommand(wx.Command): mod = fit.modules[x] if not mod.isEmpty: pyfalog.debug(" -- Removing {}", mod) - self.modCache.append(ModuleInfoCache(mod.modPosition, mod.item.ID, mod.state, mod.charge, mod.baseItemID, mod.mutaplasmidID)) + self.modCache.append(ModuleInfoCache( + mod.modPosition, + mod.item.ID, + mod.state, + mod.charge, + mod.baseItemID, + mod.mutaplasmidID, + {m.attrID: m.value for m in mod.mutators.values()})) fit.modules.toDummy(x) # if no modules have changes, skip command diff --git a/gui/fitCommands/calc/fitReplaceModule.py b/gui/fitCommands/calc/fitReplaceModule.py index 2474d1119..6415c4ec7 100644 --- a/gui/fitCommands/calc/fitReplaceModule.py +++ b/gui/fitCommands/calc/fitReplaceModule.py @@ -27,8 +27,14 @@ class FitReplaceModuleCommand(wx.Command): mod = fit.modules[self.position] if not mod.isEmpty: - self.old_module = ModuleInfoCache(mod.modPosition, mod.item.ID, mod.state, mod.charge, mod.baseItemID, - mod.mutaplasmidID) + self.old_module = ModuleInfoCache( + mod.modPosition, + mod.item.ID, + mod.state, + mod.charge, + mod.baseItemID, + mod.mutaplasmidID, + {m.attrID: m.value for m in mod.mutators.values()}) return self.change_module(self.fitID, self.position, self.itemID) diff --git a/gui/fitCommands/guiRemoveModule.py b/gui/fitCommands/guiRemoveModule.py index 944a63160..85b14a8fd 100644 --- a/gui/fitCommands/guiRemoveModule.py +++ b/gui/fitCommands/guiRemoveModule.py @@ -20,7 +20,13 @@ class GuiModuleRemoveCommand(wx.Command): self.sFit = Fit.getInstance() self.fitID = fitID self.modCache = [ModuleInfoCache( - mod.modPosition, mod.item.ID, mod.state, mod.charge, mod.baseItemID, mod.mutaplasmidID) for mod in modules if not mod.isEmpty] + mod.modPosition, + mod.item.ID, + mod.state, + mod.charge, + mod.baseItemID, + mod.mutaplasmidID, + {m.attrID: m.value for m in mod.mutators.values()}) for mod in modules if not mod.isEmpty] self.internal_history = wx.CommandProcessor() def Do(self): diff --git a/gui/fitCommands/helpers.py b/gui/fitCommands/helpers.py index 3beeee434..4d5390551 100644 --- a/gui/fitCommands/helpers.py +++ b/gui/fitCommands/helpers.py @@ -3,7 +3,7 @@ from collections import namedtuple from eos.const import FittingModuleState -ModuleInfoCache = namedtuple('ModuleInfoCache', ['modPosition', 'itemID', 'state', 'charge', 'baseID', 'mutaplasmidID']) +ModuleInfoCache = namedtuple('ModuleInfoCache', ['modPosition', 'itemID', 'state', 'charge', 'baseID', 'mutaplasmidID', 'mutations']) def stateLimit(item):