Make sure to not die when a bitmap doesn't exist

This commit is contained in:
cncfanatics
2010-08-17 16:41:02 +02:00
parent a767f7891f
commit a925d6b59c
3 changed files with 23 additions and 13 deletions

View File

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

View File

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

View File

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