Add some code to populate the fitting view with empty dummies when a fit is selected.

This commit is contained in:
cncfanatics
2010-08-27 10:37:47 +02:00
parent daba65a1f6
commit 351357d434
5 changed files with 35 additions and 8 deletions

View File

@@ -42,7 +42,7 @@ class Fit(object):
def newFit(self, shipID, name):
fit = eos.types.Fit()
fit.ship = eos.types.Ship(eos.db.getItem(shipID))
fit.name = name
fit.name = name
eos.db.saveddata_session.add(fit)
eos.db.saveddata_session.flush()
return fit.ID
@@ -65,4 +65,6 @@ class Fit(object):
return newFit.ID
def getFit(self, fitID):
return eos.db.getFit(fitID)
fit = eos.db.getFit(fitID)
fit.fill()
return fit

View File

@@ -33,7 +33,7 @@ class ModuleNameOrSlot(ViewColumn):
continue
id = Slot.__dict__[slot]
self.slotNameMap[id] = slot
self.slotNameMap[id] = slot.lower()
def getText(self, mod):
if mod.isEmpty():
@@ -43,7 +43,7 @@ class ModuleNameOrSlot(ViewColumn):
def getImageId(self, mod):
if mod.isEmpty():
bitmap = bitmapLoader.getBitmap("slot_%s_small" % self.slotNameMap[mod.state], "icons")
bitmap = bitmapLoader.getBitmap("slot_%s_small" % self.slotNameMap[mod.slot], "icons")
iconId = self.fittingView.imageList.Add(bitmap)
else:
iconFile = mod.item.icon.iconFile if mod.item.icon else ""

View File

@@ -34,13 +34,16 @@ class ModuleState(ViewColumn):
continue
id = State.__dict__[state]
self.stateNameMap[id] = state
self.stateNameMap[id] = state.lower()
def getText(self, mod):
return ""
def getImageId(self, mod):
bitmap = bitmapLoader.getBitmap("state_%s_small" % self.stateNameMap[mod.state], "icons")
return self.fittingView.imageList.Add(bitmap)
if mod.isEmpty():
return -1
else:
bitmap = bitmapLoader.getBitmap("state_%s_small" % self.stateNameMap[mod.state], "icons")
return self.fittingView.imageList.Add(bitmap)
builtinViewColumns.registerColumn(ModuleState)

View File

@@ -23,6 +23,7 @@ import gui.builtinViewColumns
import gui.shipBrowser as sb
import gui.mainFrame
from gui.builtinViewColumns import *
import sys
class FittingView(wx.ListCtrl):
DEFAULT_COLS = ["Module state",
@@ -73,11 +74,18 @@ class FittingView(wx.ListCtrl):
info.m_image = col.imageId
info.m_text = col.columnText
self.InsertColumnInfo(i, info)
col.resized = False
self.SetColumnWidth(i, wx.LIST_AUTOSIZE_USEHEADER if col.size is wx.LIST_AUTOSIZE else col.size)
def resizeChecker(self, event):
if self.activeColumns[event.Column].resizable is False:
event.Veto()
else:
self.activeColumns[event.Column].resized = True
def clearItemImages(self):
for i in xrange(self.imageList.ImageCount, self.imageListBase, -1):
self.imageList.Remove(i)
#Gets called from the fitMultiSwitch when it decides its time
def changeFit(self, fitID):
@@ -85,4 +93,18 @@ class FittingView(wx.ListCtrl):
if fitID == None:
self.Hide()
else:
cFit = controller.Fit.getInstance()
fit = cFit.getFit(fitID)
self.DeleteAllItems()
self.clearItemImages()
for mod in fit.modules:
index = self.InsertStringItem(sys.maxint, "")
for i, col in enumerate(self.activeColumns):
self.SetStringItem(index, i, col.getText(mod), col.getImageId(mod))
for i, col in enumerate(self.activeColumns):
if not col.resized:
self.SetColumnWidth(i, wx.LIST_AUTOSIZE)
if self.GetColumnWidth(i) < 40:
self.SetColumnWidth(i, 40)
self.Show()

View File

@@ -42,7 +42,7 @@ class ViewColumn(object):
def getText(self, mod):
raise NotImplementedError()
def getImage(self, mod):
def getImageId(self, mod):
raise NotImplementedError()
def getParameters(self):