From 5c2df663358bef6bc74e834b35705473ceb70448 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sat, 9 Mar 2019 20:38:58 -0500 Subject: [PATCH 1/2] #1867 Fix for the image list crash on linux --- gui/builtinItemStatsViews/itemAttributes.py | 23 ++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/gui/builtinItemStatsViews/itemAttributes.py b/gui/builtinItemStatsViews/itemAttributes.py index 747f25066..3617301a1 100644 --- a/gui/builtinItemStatsViews/itemAttributes.py +++ b/gui/builtinItemStatsViews/itemAttributes.py @@ -62,6 +62,8 @@ class ItemParams(wx.Panel): mainSizer.Add(bSizer, 0, wx.ALIGN_RIGHT) + self.imageList = wx.ImageList(16, 16) + self.PopulateList() self.toggleViewBtn.Bind(wx.EVT_TOGGLEBUTTON, self.ToggleViewMode) @@ -164,6 +166,14 @@ class ItemParams(wx.Panel): ] ) + def SetupImageList(self): + self.imageList.RemoveAll() + + self.blank_icon = self.imageList.Add(BitmapLoader.getBitmap("transparent16x16", "gui")) + self.unknown_icon = self.imageList.Add(BitmapLoader.getBitmap("0", "icons")) + + self.paramList.AssignImageList(self.imageList) + def AddAttribute(self, parent, attr): if attr in self.attrValues and attr not in self.processed_attribs: @@ -188,7 +198,7 @@ class ItemParams(wx.Panel): def PopulateList(self): # self.paramList.setResizeColumn(0) - self.imageList = wx.ImageList(16, 16) + self.SetupImageList() self.processed_attribs = set() root = self.paramList.AddRoot("The Root Item") @@ -243,7 +253,6 @@ class ItemParams(wx.Panel): self.AddAttribute(root, name) - self.paramList.AssignImageList(self.imageList) self.Layout() def GetData(self, attr): @@ -278,13 +287,13 @@ class ItemParams(wx.Panel): icon = BitmapLoader.getBitmap(iconFile, "icons") if icon is None: - icon = BitmapLoader.getBitmap("transparent16x16", "gui") - - attrIcon = self.imageList.Add(icon) + attrIcon = self.blank_icon + else: + attrIcon = self.imageList.Add(icon) else: - attrIcon = self.imageList.Add(BitmapLoader.getBitmap("0", "icons")) + attrIcon = self.unknown_icon else: - attrIcon = self.imageList.Add(BitmapLoader.getBitmap("0", "icons")) + attrIcon = self.unknown_icon # index = self.paramList.AppendItem(root, attrName) # idNameMap[idCount] = attrName From 82c5ae1fe9ade7e2e773dd9dff3b6ac6ff908657 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sat, 9 Mar 2019 20:43:40 -0500 Subject: [PATCH 2/2] some clean up --- gui/builtinItemStatsViews/itemAttributes.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gui/builtinItemStatsViews/itemAttributes.py b/gui/builtinItemStatsViews/itemAttributes.py index 3617301a1..dfac034b3 100644 --- a/gui/builtinItemStatsViews/itemAttributes.py +++ b/gui/builtinItemStatsViews/itemAttributes.py @@ -28,7 +28,7 @@ class ItemParams(wx.Panel): mainSizer.Add(self.paramList, 1, wx.ALL | wx.EXPAND, 0) self.SetSizer(mainSizer) - self.toggleView = 1 + self.toggleView = AttributeView.NORMAL self.stuff = stuff self.item = item self.attrInfo = {} @@ -273,7 +273,7 @@ class ItemParams(wx.Panel): if self.toggleView == AttributeView.NORMAL and ((attr not in GroupedAttributes and not value) or info is None or not info.published or attr in RequiredSkillAttrs): return None - if info and info.displayName and self.toggleView == 1: + if info and info.displayName and self.toggleView == AttributeView.NORMAL: attrName = info.displayName else: attrName = attr @@ -300,14 +300,14 @@ class ItemParams(wx.Panel): # self.paramList.SetPyData(index, idCount) # idCount += 1 - if self.toggleView != 1: + if self.toggleView == AttributeView.RAW: valueUnit = str(value) elif info and info.unit: valueUnit = self.FormatValue(*info.unit.PreformatValue(value)) else: valueUnit = formatAmount(value, 3, 0, 0) - if self.toggleView != 1: + if self.toggleView == AttributeView.RAW: valueUnitDefault = str(valueDefault) elif info and info.unit: valueUnitDefault = self.FormatValue(*info.unit.PreformatValue(valueDefault))