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.viewColumn import ViewColumn
|
||||||
from gui import bitmapLoader
|
from gui import bitmapLoader
|
||||||
import service
|
import service
|
||||||
|
from util import formatAmount
|
||||||
|
|
||||||
class ModulePrice(ViewColumn):
|
class ModulePrice(ViewColumn):
|
||||||
name = "Module Price"
|
name = "Module Price"
|
||||||
@@ -33,15 +34,16 @@ class ModulePrice(ViewColumn):
|
|||||||
|
|
||||||
|
|
||||||
def getText(self, mod):
|
def getText(self, mod):
|
||||||
itemPrice = None
|
return False if mod.item is not None else ""
|
||||||
|
|
||||||
|
def delayedText(self, mod, display, colItem):
|
||||||
def callback(requests):
|
def callback(requests):
|
||||||
itemPrice = requests[0].price
|
price = requests[0].price
|
||||||
|
colItem.SetText(formatAmount(price, 3, 3, 9) if price is not None else "")
|
||||||
service.Market.getInstance().getPrices([mod.ID], callback)
|
display.SetItem(colItem)
|
||||||
if itemPrice is not None:
|
|
||||||
return "%.0f" % itemPrice
|
|
||||||
else:
|
service.Market.getInstance().getPrices([mod.item.ID], callback)
|
||||||
return ""
|
|
||||||
|
|
||||||
def getImageId(self, mod):
|
def getImageId(self, mod):
|
||||||
return -1
|
return -1
|
||||||
|
|||||||
@@ -127,6 +127,10 @@ class Display(wx.ListCtrl):
|
|||||||
oldText = colItem.GetText()
|
oldText = colItem.GetText()
|
||||||
oldImageId = colItem.GetImage()
|
oldImageId = colItem.GetImage()
|
||||||
newText = col.getText(st)
|
newText = col.getText(st)
|
||||||
|
if newText is False:
|
||||||
|
col.delayedText(st, self, colItem)
|
||||||
|
newText = ""
|
||||||
|
|
||||||
newImageId = col.getImageId(st)
|
newImageId = col.getImageId(st)
|
||||||
|
|
||||||
colItem.SetText(newText)
|
colItem.SetText(newText)
|
||||||
|
|||||||
@@ -54,4 +54,7 @@ class ViewColumn(object):
|
|||||||
def getParameters(self):
|
def getParameters(self):
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
from gui.builtinViewColumns import *
|
def delayedText(self, display, colItem):
|
||||||
|
raise NotImplementedError()
|
||||||
|
|
||||||
|
from gui.builtinViewColumns import *
|
||||||
|
|||||||
Reference in New Issue
Block a user