diff --git a/gui/builtinItemStatsViews/itemAttributes.py b/gui/builtinItemStatsViews/itemAttributes.py index c4b121ff0..ad0e78e1d 100644 --- a/gui/builtinItemStatsViews/itemAttributes.py +++ b/gui/builtinItemStatsViews/itemAttributes.py @@ -42,8 +42,8 @@ class ItemParams(wx.Panel): self.toggleView = AttributeView.NORMAL self.stuff = stuff self.item = item - self.isStuffItem = stuff is not None and getattr(stuff, 'item') == item - self.isStuffCharge = stuff is not None and getattr(stuff, 'charge') == item + self.isStuffItem = stuff is not None and item is not None and getattr(stuff, 'item', None) == item + self.isStuffCharge = stuff is not None and item is not None and getattr(stuff, 'charge', None) == item self.attrInfo = {} self.attrValues = {} self._fetchValues() @@ -297,9 +297,9 @@ class ItemParams(wx.Panel): valDefault = getattr(info, "value", None) # Get default value from attribute if self.stuff is not None: # if it's a stuff, overwrite default (with fallback to current value) - if self.stuff.item == self.item: + if self.isStuffItem: valDefault = self.stuff.getItemBaseAttrValue(attr, valDefault) - elif self.stuff.charge == self.item: + elif self.isStuffCharge: valDefault = self.stuff.getChargeBaseAttrValue(attr, valDefault) valueDefault = valDefault if valDefault is not None else att diff --git a/gui/fitCommands/gui/booster/changeMeta.py b/gui/fitCommands/gui/booster/changeMeta.py index 179046091..c2f9bf70e 100644 --- a/gui/fitCommands/gui/booster/changeMeta.py +++ b/gui/fitCommands/gui/booster/changeMeta.py @@ -16,6 +16,7 @@ class GuiChangeBoosterMetaCommand(wx.Command): self.fitID = fitID self.position = position self.newItemID = newItemID + self.newPosition = None def Do(self): sFit = Fit.getInstance() @@ -31,15 +32,24 @@ class GuiChangeBoosterMetaCommand(wx.Command): sFit.recalc(self.fitID) sFit.fill(self.fitID) eos.db.commit() - wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitIDs=(self.fitID,))) + self.newPosition = cmd.newPosition + newBooster = fit.boosters[self.newPosition] + mainFrame = gui.mainFrame.MainFrame.getInstance() + wx.PostEvent(mainFrame, GE.FitChanged(fitIDs=(self.fitID,))) + wx.PostEvent(mainFrame, GE.ItemChangedInplace(old=booster, new=newBooster)) return success def Undo(self): + sFit = Fit.getInstance() + fit = sFit.getFit(self.fitID) + oldBooster = fit.boosters[self.newPosition] success = self.internalHistory.undoAll() eos.db.flush() - sFit = Fit.getInstance() sFit.recalc(self.fitID) sFit.fill(self.fitID) eos.db.commit() - wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitIDs=(self.fitID,))) + newBooster = fit.boosters[self.position] + mainFrame = gui.mainFrame.MainFrame.getInstance() + wx.PostEvent(mainFrame, GE.FitChanged(fitIDs=(self.fitID,))) + wx.PostEvent(mainFrame, GE.ItemChangedInplace(old=oldBooster, new=newBooster)) return success diff --git a/gui/fitCommands/gui/implant/changeMeta.py b/gui/fitCommands/gui/implant/changeMeta.py index f085a09f5..3acd71a28 100644 --- a/gui/fitCommands/gui/implant/changeMeta.py +++ b/gui/fitCommands/gui/implant/changeMeta.py @@ -16,6 +16,7 @@ class GuiChangeImplantMetaCommand(wx.Command): self.fitID = fitID self.position = position self.newItemID = newItemID + self.newPosition = None def Do(self): sFit = Fit.getInstance() @@ -31,15 +32,25 @@ class GuiChangeImplantMetaCommand(wx.Command): sFit.recalc(self.fitID) sFit.fill(self.fitID) eos.db.commit() - wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitIDs=(self.fitID,))) + self.newPosition = cmd.newPosition + newImplant = fit.implants[self.newPosition] + mainFrame = gui.mainFrame.MainFrame.getInstance() + wx.PostEvent(mainFrame, GE.FitChanged(fitIDs=(self.fitID,))) + wx.PostEvent(mainFrame, GE.ItemChangedInplace(old=implant, new=newImplant)) return success def Undo(self): + sFit = Fit.getInstance() + fit = sFit.getFit(self.fitID) + oldImplant = fit.implants[self.newPosition] success = self.internalHistory.undoAll() eos.db.flush() sFit = Fit.getInstance() sFit.recalc(self.fitID) sFit.fill(self.fitID) eos.db.commit() - wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitIDs=(self.fitID,))) + newImplant = fit.implants[self.position] + mainFrame = gui.mainFrame.MainFrame.getInstance() + wx.PostEvent(mainFrame, GE.FitChanged(fitIDs=(self.fitID,))) + wx.PostEvent(mainFrame, GE.ItemChangedInplace(old=oldImplant, new=newImplant)) return success diff --git a/gui/fitCommands/gui/localModule/changeMetas.py b/gui/fitCommands/gui/localModule/changeMetas.py index a74ff8571..a8eb1fa85 100644 --- a/gui/fitCommands/gui/localModule/changeMetas.py +++ b/gui/fitCommands/gui/localModule/changeMetas.py @@ -63,7 +63,7 @@ class GuiChangeLocalModuleMetasCommand(wx.Command): oldMod = oldModMap.get(position) newMod = newModMap.get(position) if oldMod is not newMod: - events.append(GE.ItemChangedInplace(fitID=self.fitID, old=oldMod, new=newMod)) + events.append(GE.ItemChangedInplace(old=oldMod, new=newMod)) for event in events: wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), event) return success