Make character & damagePattern global across all fits
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()]
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user