Add support for delayed changing of text in columns via a delayedText
method that will get called if getText returns false
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
from gui.viewColumn import ViewColumn
|
||||
from gui import bitmapLoader
|
||||
import service
|
||||
from util import formatAmount
|
||||
|
||||
class ModulePrice(ViewColumn):
|
||||
name = "Module Price"
|
||||
@@ -33,15 +34,16 @@ class ModulePrice(ViewColumn):
|
||||
|
||||
|
||||
def getText(self, mod):
|
||||
itemPrice = None
|
||||
return False if mod.item is not None else ""
|
||||
|
||||
def delayedText(self, mod, display, colItem):
|
||||
def callback(requests):
|
||||
itemPrice = requests[0].price
|
||||
|
||||
service.Market.getInstance().getPrices([mod.ID], callback)
|
||||
if itemPrice is not None:
|
||||
return "%.0f" % itemPrice
|
||||
else:
|
||||
return ""
|
||||
price = requests[0].price
|
||||
colItem.SetText(formatAmount(price, 3, 3, 9) if price is not None else "")
|
||||
display.SetItem(colItem)
|
||||
|
||||
|
||||
service.Market.getInstance().getPrices([mod.item.ID], callback)
|
||||
|
||||
def getImageId(self, mod):
|
||||
return -1
|
||||
|
||||
@@ -127,6 +127,10 @@ class Display(wx.ListCtrl):
|
||||
oldText = colItem.GetText()
|
||||
oldImageId = colItem.GetImage()
|
||||
newText = col.getText(st)
|
||||
if newText is False:
|
||||
col.delayedText(st, self, colItem)
|
||||
newText = ""
|
||||
|
||||
newImageId = col.getImageId(st)
|
||||
|
||||
colItem.SetText(newText)
|
||||
|
||||
@@ -54,4 +54,7 @@ class ViewColumn(object):
|
||||
def getParameters(self):
|
||||
raise NotImplementedError()
|
||||
|
||||
from gui.builtinViewColumns import *
|
||||
def delayedText(self, display, colItem):
|
||||
raise NotImplementedError()
|
||||
|
||||
from gui.builtinViewColumns import *
|
||||
|
||||
Reference in New Issue
Block a user