Make character & damagePattern global across all fits

This commit is contained in:
cncfanatics
2010-10-30 16:40:26 +02:00
parent d64b1720ee
commit 887462e4db
4 changed files with 38 additions and 7 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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()]

View File

@@ -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()