Add account icon updater method to sidepane

chart_mod_breakup
Tyler Goodlet 2021-09-14 12:26:06 -04:00
parent 9e41dfb735
commit 9c60aa1928
1 changed files with 20 additions and 21 deletions

View File

@ -42,7 +42,6 @@ from ..data._normalize import iterticks
from ..data.feed import Feed
from ._label import Label
from ._lines import LevelLine, order_line
from ._icons import mk_icons
from ._style import _font
from ._forms import FieldsForm, FillStatusBar, QLabel
from ..log import get_logger
@ -142,28 +141,8 @@ class SettingsPane:
combo = self.form.fields['account']
return combo.set_items(names)
def update_accounts_icon(
self,
status: str, # one of the values in ``_icons`` above
keys: Optional[list[str]] = None,
) -> None:
form = self.form
icons = mk_icons(
form.style(),
form.fields['account'].iconSize()
)
acct_select = form.fields['account']
keys = list(keys or acct_select._items.keys())
for key in keys:
i = acct_select._items[key]
icon = icons[status]
acct_select.setItemIcon(i, icon)
def on_selection_change(
self,
text: str,
key: str,
@ -299,6 +278,26 @@ class SettingsPane:
# min(round(prop * slots), slots)
min(used, slots)
)
self.update_account_icons({alloc.account_name(): pp.live_pp})
def update_account_icons(
self,
pps: dict[str, Position],
) -> None:
form = self.form
accounts = form.fields['account']
for account_name, pp in pps.items():
icon_name = None
if pp.size > 0:
icon_name = 'long_pp'
elif pp.size < 0:
icon_name = 'short_pp'
accounts.set_icon(account_name, icon_name)
def display_pnl(
self,