diff --git a/gui/fittingView.py b/gui/fittingView.py index ce4912bb8..9edec4d86 100644 --- a/gui/fittingView.py +++ b/gui/fittingView.py @@ -107,6 +107,7 @@ class FittingView(d.Display): wx.PostEvent(self.mainFrame, FitChanged(fitID=self.activeFitID)) event.Skip() + #Gets called from the fitMultiSwitch when it decides its time def changeFit(self, fitID): self.activeFitID = fitID diff --git a/gui/multiSwitch.py b/gui/multiSwitch.py index 54220d752..26aea48da 100644 --- a/gui/multiSwitch.py +++ b/gui/multiSwitch.py @@ -148,8 +148,10 @@ class MultiSwitch(wx.Notebook): page = self.GetPage(selection) if self.countEvt == 0: + fitID = page.view.activeFitID + sFit = service.Fit.getInstance() + sFit.switchFit(fitID) if hasattr(page, "type") and page.type == "fit": - fitID = page.view.activeFitID wx.PostEvent(self.mainFrame, fv.FitChanged(fitID=fitID)) else: wx.PostEvent(self.mainFrame, fv.FitChanged(fitID=None)) @@ -168,6 +170,11 @@ class MultiSwitch(wx.Notebook): if page.type == "fit": fitID = event.fitID view = page.view + + #Notify service + sFit = service.Fit.getInstance() + sFit.switchFit(fitID) + #Change title of current tab to new fit self.setTabTitle(selected, fitID) view.changeFit(fitID) diff --git a/service/character.py b/service/character.py index 846a6d7bf..56df2b0f8 100644 --- a/service/character.py +++ b/service/character.py @@ -30,10 +30,13 @@ class Character(): return cls.instance - def all0ID(self): + def all0(self): all0 = eos.types.Character.getAll0() eos.db.commit() - return all0.ID + return all0 + + def all0ID(self): + return self.all0().ID def getCharacterList(self): baseChars = [eos.types.Character.getAll0(), eos.types.Character.getAll5()] diff --git a/service/fit.py b/service/fit.py index 2e3f0d16c..b15bcc417 100644 --- a/service/fit.py +++ b/service/fit.py @@ -22,7 +22,7 @@ import eos.types from eos.types import State, Slot import copy from service.damagePattern import DamagePattern - +from service.character import Character class Fit(object): instance = None @@ -33,6 +33,10 @@ class Fit(object): return cls.instance + def __init__(self): + self.pattern = DamagePattern.getInstance().getDamagePattern("Uniform") + self.character = Character.getInstance().all0() + def getAllFits(self): fits = eos.db.getFitList() names = [] @@ -58,7 +62,8 @@ class Fit(object): fit = eos.types.Fit() fit.ship = eos.types.Ship(eos.db.getItem(shipID)) fit.name = name if name is not None else "New %s" % fit.ship.item.name - fit.damagePattern = DamagePattern.getInstance().getDamagePattern("Uniform") + fit.damagePattern = self.pattern + fit.character = self.character eos.db.save(fit) fit.calculateModifiedAttributes() return fit.ID @@ -96,6 +101,21 @@ class Fit(object): fit.clear() fit.calculateModifiedAttributes() + def switchFit(self, fitID): + if fitID is None: + return None + + fit = eos.db.getFit(fitID) + + if fit.character != self.character: + fit.character = self.character + if fit.damagePattern != self.pattern: + fit.damagePattern = self.pattern + + eos.db.commit() + fit.clear() + fit.calculateModifiedAttributes() + def getFit(self, fitID): if fitID is None: return None @@ -362,7 +382,7 @@ class Fit(object): return fit = eos.db.getFit(fitID) - fit.character = eos.db.getCharacter(charID) + fit.character = self.character = eos.db.getCharacter(charID) fit.clear() fit.calculateModifiedAttributes() @@ -395,7 +415,7 @@ class Fit(object): return fit = eos.db.getFit(fitID) - fit.damagePattern = pattern + fit.damagePattern = self.pattern = pattern eos.db.commit() fit.clear()