From a925d6b59c87bbfca95a8fd7068b17af3c2339ac Mon Sep 17 00:00:00 2001 From: cncfanatics Date: Tue, 17 Aug 2010 16:41:02 +0200 Subject: [PATCH] Make sure to not die when a bitmap doesn't exist --- gui/bitmapLoader.py | 5 ----- gui/fitMultiSwitch.py | 3 ++- gui/marketBrowser.py | 28 +++++++++++++++++++++------- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/gui/bitmapLoader.py b/gui/bitmapLoader.py index c0b955d76..60e267605 100644 --- a/gui/bitmapLoader.py +++ b/gui/bitmapLoader.py @@ -38,8 +38,3 @@ def getBitmap(name,location): if os.path.exists(path): return wx.Image(path).ConvertToBitmap() - else: - null = wx.NullBitmap - null.SetWidth(32) - null.SetHeight(32) - return null diff --git a/gui/fitMultiSwitch.py b/gui/fitMultiSwitch.py index 452c184cd..51ac91a7f 100644 --- a/gui/fitMultiSwitch.py +++ b/gui/fitMultiSwitch.py @@ -24,13 +24,14 @@ from gui.statsPane import StatsPane class FitMultiSwitch(wx.Notebook): def __init__(self, parent): wx.Notebook.__init__(self, parent, wx.ID_ANY) + self.fitPanes = [] self.AddPage(wx.Panel(self), "+") def AddTab(self): p = wx.Panel(self) sizer = wx.BoxSizer(wx.HORIZONTAL) - sizer.Add(FittingView(p), 1, wx.EXPAND) + sizer.Add(FittingView(p), 1, wx.EXPAND | wx.RESERVE_SPACE_EVEN_IF_HIDDEN) p.SetSizer(sizer) pos = self.GetPageCount() - 1 diff --git a/gui/marketBrowser.py b/gui/marketBrowser.py index 099c4f02e..1e66d9014 100644 --- a/gui/marketBrowser.py +++ b/gui/marketBrowser.py @@ -61,8 +61,7 @@ class MarketBrowser(wx.Panel): root = cMarket.getMarketRoot() for id, name, iconFile in root: - if iconFile: iconId = self.marketImageList.Add(bitmapLoader.getBitmap(iconFile, "pack")) - else: iconId = -1 + iconId = self.addMarketViewImage(iconFile) childId = self.marketView.AppendItem(self.marketRoot, name, iconId, data=wx.TreeItemData(id)) self.marketView.AppendItem(childId, "dummy") @@ -72,6 +71,24 @@ class MarketBrowser(wx.Panel): self.marketView.Bind(wx.EVT_TREE_ITEM_EXPANDING, self.expandLookup) self.marketView.Bind(wx.EVT_TREE_SEL_CHANGED, self.selectionMade) + def addMarketViewImage(self, iconFile): + if iconFile is None: + return -1 + bitmap = bitmapLoader.getBitmap(iconFile, "pack") + if bitmap is None: + return -1 + else: + return self.marketImageList.Add(bitmap) + + def addItemViewImage(self, iconFile): + if iconFile is None: + return -1 + bitmap = bitmapLoader.getBitmap(iconFile, "pack") + if bitmap is None: + return -1 + else: + return self.itemImageList.Add(bitmap) + def expandLookup(self, event): root = event.Item child, cookie = self.marketView.GetFirstChild(root) @@ -82,8 +99,7 @@ class MarketBrowser(wx.Panel): #Add 'real stoof!' instead for id, name, iconFile, more in cMarket.getChildren(self.marketView.GetPyData(root)): - if iconFile: iconId = self.marketImageList.Add(bitmapLoader.getBitmap(iconFile, "pack")) - else: iconId = -1 + iconId = self.addMarketViewImage(iconFile) childId = self.marketView.AppendItem(root, name, iconId, data=wx.TreeItemData(id)) if more: self.marketView.AppendItem(childId, "dummy") @@ -103,9 +119,7 @@ class MarketBrowser(wx.Panel): idNameMap = {} for id, name, iconFile in cMarket.getItems(self.marketView.GetPyData(root)): - if iconFile: iconId = self.itemImageList.Add(bitmapLoader.getBitmap(iconFile, "pack")) - else: iconId = -1 - + iconId = self.addItemViewImage(iconFile) index = self.itemView.InsertImageStringItem(sys.maxint, name, iconId) idNameMap[id] = name self.itemView.SetItemData(index, id)