MCPcopy Index your code
hub / github.com/pyfa-org/Pyfa / ItemView

Class ItemView

gui/propertyEditor.py:165–233  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

163
164# This is literally a stripped down version of the market.
165class ItemView(d.Display):
166 DEFAULT_COLS = ["Base Icon",
167 "Base Name",
168 "attr:power,,,True",
169 "attr:cpu,,,True"]
170
171 def __init__(self, parent):
172 d.Display.__init__(self, parent)
173 self.activeItems = []
174
175 self.searchTimer = wx.Timer(self)
176 self.Bind(wx.EVT_TIMER, self.scheduleSearch, self.searchTimer)
177
178 self.searchBox = parent.Parent.Parent.searchBox
179 # Bind search actions
180 self.searchBox.Bind(SBox.EVT_TEXT_ENTER, self.scheduleSearch)
181 self.searchBox.Bind(SBox.EVT_SEARCH_BTN, self.scheduleSearch)
182 self.searchBox.Bind(SBox.EVT_CANCEL_BTN, self.clearSearch)
183 self.searchBox.Bind(SBox.EVT_TEXT, self.delaySearch)
184
185 self.update(Market.getInstance().getItemsWithOverrides())
186
187 def clearSearch(self, event=None):
188 if event:
189 self.searchBox.Clear()
190 self.update(Market.getInstance().getItemsWithOverrides())
191
192 def updateItems(self, updateDisplay=False):
193 if updateDisplay:
194 self.update(Market.getInstance().getItemsWithOverrides())
195
196 def delaySearch(self, evt):
197 sFit = Fit.getInstance()
198 self.searchTimer.Stop()
199 self.searchTimer.Start(sFit.serviceFittingOptions["marketSearchDelay"], True)
200
201 def scheduleSearch(self, event=None):
202 sMkt = Market.getInstance()
203
204 search = self.searchBox.GetLineText(0)
205 # Make sure we do not count wildcards as search symbol
206 realsearch = search.replace('*', '').replace('?', '')
207 # Show nothing if query is too short
208 if len(realsearch) < 3:
209 self.clearSearch()
210 return
211
212 sMkt.searchItems(search, self.populateSearch, 'everything')
213
214 def itemSort(self, item):
215 sMkt = Market.getInstance()
216 isFittable = item.group.name in sMkt.FIT_GROUPS or item.category.name in sMkt.FIT_CATEGORIES
217 return (not isFittable, *sMkt.itemSort(item))
218
219 def populateSearch(self, itemIDs):
220 items = Market.getItems(itemIDs)
221 self.update(items)
222

Callers 1

__init__Method · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected