From 2ea3394845569b9247e445de9d32ed2faa85f156 Mon Sep 17 00:00:00 2001 From: Tony Cook Date: Fri, 15 Feb 2019 19:04:50 +1100 Subject: [PATCH] make the item list colour per slot if colorFitBySlot set attempts to resolve #1839 --- gui/builtinMarketBrowser/itemView.py | 12 ++++++++++++ gui/builtinPreferenceViews/pyfaGeneralPreferences.py | 2 ++ gui/display.py | 9 +++++++++ 3 files changed, 23 insertions(+) diff --git a/gui/builtinMarketBrowser/itemView.py b/gui/builtinMarketBrowser/itemView.py index 82454502a..44e55f1a2 100644 --- a/gui/builtinMarketBrowser/itemView.py +++ b/gui/builtinMarketBrowser/itemView.py @@ -28,6 +28,7 @@ class ItemView(Display): self.recentlyUsedModules = set() self.sMkt = marketBrowser.sMkt self.searchMode = marketBrowser.searchMode + self.sFit = Fit.getInstance() self.marketBrowser = marketBrowser self.marketView = marketBrowser.marketView @@ -266,3 +267,14 @@ class ItemView(Display): revmap[mgid] = i i += 1 return revmap + + slotColourMap = { 'loPower' : wx.Colour(250, 235, 204), + 'medPower': wx.Colour(188, 215, 241), + 'hiPower' : wx.Colour(235, 204, 209) } + + def columnBackground(self, colItem, item): + if self.sFit.serviceFittingOptions["colorFitBySlot"]: + for effectName in self.slotColourMap: + if effectName in item.effects: + return self.slotColourMap[effectName] + return wx.Colour(255, 255, 255) diff --git a/gui/builtinPreferenceViews/pyfaGeneralPreferences.py b/gui/builtinPreferenceViews/pyfaGeneralPreferences.py index 51d32ab5d..ef45d54ac 100644 --- a/gui/builtinPreferenceViews/pyfaGeneralPreferences.py +++ b/gui/builtinPreferenceViews/pyfaGeneralPreferences.py @@ -166,6 +166,8 @@ class PFGeneralPref(PreferenceView): fitID = self.mainFrame.getActiveFit() self.sFit.refreshFit(fitID) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + iView = self.mainFrame.marketBrowser.itemView; + iView.update(iView.active) event.Skip() def onCBGlobalRackSlots(self, event): diff --git a/gui/display.py b/gui/display.py index 8ee42692e..8a4e36a0b 100644 --- a/gui/display.py +++ b/gui/display.py @@ -206,15 +206,18 @@ class Display(wx.ListCtrl): colItem = self.GetItem(item, i) oldText = colItem.GetText() oldImageId = colItem.GetImage() + oldColour = colItem.GetBackgroundColour(); newText = col.getText(st) if newText is False: col.delayedText(st, self, colItem) newText = "\u21bb" + newColour = self.columnBackground(colItem, st); newImageId = col.getImageId(st) colItem.SetText(newText) colItem.SetImage(newImageId) + colItem.SetBackgroundColour(newColour) mask = 0 @@ -228,6 +231,9 @@ class Display(wx.ListCtrl): if mask: colItem.SetMask(mask) self.SetItem(colItem) + else: + if newColour != oldColour: + self.SetItem(colItem) self.SetItemData(item, id_) @@ -257,3 +263,6 @@ class Display(wx.ListCtrl): def getColumn(self, point): row, _, col = self.HitTestSubItem(point) return col + + def columnBackground(self, colItem, item): + return colItem.GetBackgroundColour()