summaryrefslogtreecommitdiffstats
path: root/Mac/Tools/IDE
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Tools/IDE')
-rw-r--r--Mac/Tools/IDE/PyBrowser.py26
1 files changed, 20 insertions, 6 deletions
diff --git a/Mac/Tools/IDE/PyBrowser.py b/Mac/Tools/IDE/PyBrowser.py
index c1a3d05..2bb1686 100644
--- a/Mac/Tools/IDE/PyBrowser.py
+++ b/Mac/Tools/IDE/PyBrowser.py
@@ -387,14 +387,26 @@ class BrowserWidget(W.CustomList):
if dataLen >= 6:
data = theList.LGetCell(dataLen, theCell)
iconId, indent, tab = struct.unpack("hhh", data[:6])
- key, value = data[6:].split("\t", 1)
+ try:
+ key, value = data[6:].split("\t", 1)
+ except ValueError:
+ # bogus data, at least don't crash.
+ indent = 0
+ tab = 0
+ iconId = 0
+ key = ""
+ value = data[6:]
if iconId:
- theIcon = Icn.GetCIcon(iconId)
- rect = (0, 0, 16, 16)
- rect = Qd.OffsetRect(rect, l, t)
- rect = Qd.OffsetRect(rect, 0, (theList.cellSize[1] - (rect[3] - rect[1])) / 2)
- Icn.PlotCIcon(rect, theIcon)
+ try:
+ theIcon = Icn.GetCIcon(iconId)
+ except Icn.Error:
+ pass
+ else:
+ rect = (0, 0, 16, 16)
+ rect = Qd.OffsetRect(rect, l, t)
+ rect = Qd.OffsetRect(rect, 0, (theList.cellSize[1] - (rect[3] - rect[1])) / 2)
+ Icn.PlotCIcon(rect, theIcon)
if len(key) >= 0:
cl, ct, cr, cb = cellRect
@@ -411,6 +423,8 @@ class BrowserWidget(W.CustomList):
drawTextCell(value, (cl, ct, cr, cb), ascent, theList)
#elif dataLen != 0:
# drawTextCell("???", 3, cellRect, ascent, theList)
+ else:
+ return # we have bogus data
# draw nice dotted line
l, t, r, b = cellRect