From 351357d434daa0e82b46609dad52fc0cd046d38d Mon Sep 17 00:00:00 2001 From: cncfanatics Date: Fri, 27 Aug 2010 10:37:47 +0200 Subject: [PATCH] Add some code to populate the fitting view with empty dummies when a fit is selected. --- controller/fit.py | 6 ++++-- gui/builtinViewColumns/moduleNameOrSlot.py | 4 ++-- gui/builtinViewColumns/moduleState.py | 9 ++++++--- gui/fittingView.py | 22 ++++++++++++++++++++++ gui/viewColumn.py | 2 +- 5 files changed, 35 insertions(+), 8 deletions(-) diff --git a/controller/fit.py b/controller/fit.py index da9fda954..d88afe41e 100644 --- a/controller/fit.py +++ b/controller/fit.py @@ -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 diff --git a/gui/builtinViewColumns/moduleNameOrSlot.py b/gui/builtinViewColumns/moduleNameOrSlot.py index d51015efe..7cf7d06b4 100644 --- a/gui/builtinViewColumns/moduleNameOrSlot.py +++ b/gui/builtinViewColumns/moduleNameOrSlot.py @@ -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 "" diff --git a/gui/builtinViewColumns/moduleState.py b/gui/builtinViewColumns/moduleState.py index ab5e6c81a..499c4052d 100644 --- a/gui/builtinViewColumns/moduleState.py +++ b/gui/builtinViewColumns/moduleState.py @@ -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) diff --git a/gui/fittingView.py b/gui/fittingView.py index cec584660..799571e77 100644 --- a/gui/fittingView.py +++ b/gui/fittingView.py @@ -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() diff --git a/gui/viewColumn.py b/gui/viewColumn.py index 72c897d25..be2a3bcda 100644 --- a/gui/viewColumn.py +++ b/gui/viewColumn.py @@ -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):