# HG changeset patch # User Goffi # Date 1548530688 -3600 # Node ID ba7b8cb7ddcd97d197ca5717a3f2ca6ad0273fa2 # Parent 03d74435c01c5c45e19f6e354552675e3b1f2909 common: don't use anymore positional argument in JidItem diff -r 03d74435c01c -r ba7b8cb7ddcd cagou/core/common.py --- a/cagou/core/common.py Sat Jan 26 20:24:48 2019 +0100 +++ b/cagou/core/common.py Sat Jan 26 20:24:48 2019 +0100 @@ -43,21 +43,37 @@ class JidItem(BoxLayout): bg_color = properties.ListProperty([0.2, 0.2, 0.2, 1]) color = properties.ListProperty([1, 1, 1, 1]) + jid = properties.StringProperty() + profile = properties.StringProperty() + nick = properties.StringProperty() + avatar = properties.ObjectProperty() - def __init__(self, jid, profile, **kwargs): - self.jid = jid - self.profile = profile - self.nick = kwargs.get('nick') - super(JidItem, self).__init__(**kwargs) + def on_avatar(self, wid, jid_): + if self.jid and self.profile: + self.getImage() - def getImage(self, wid): + def on_jid(self, wid, jid_): + if self.profile and self.avatar: + self.getImage() + + def on_profile(self, wid, profile): + if self.jid and self.avatar: + self.getImage() + + def getImage(self): host = G.host if host.contact_lists[self.profile].isRoom(self.jid.bare): - wid.opacity = 0 - return "" + self.avatar.opacity = 0 + self.avatar.source = "" else: - return (host.getAvatar(self.jid, profile=self.profile) - or host.getDefaultAvatar(self.jid)) + try: + self.avatar.source = ( + host.getAvatar(self.jid, profile=self.profile) + or host.getDefaultAvatar(self.jid) + ) + except Exception as e: + __import__('pudb').set_trace() + print(e) class JidButton(ButtonBehavior, JidItem): diff -r 03d74435c01c -r ba7b8cb7ddcd cagou/kv/common.kv --- a/cagou/kv/common.kv Sat Jan 26 20:24:48 2019 +0100 +++ b/cagou/kv/common.kv Sat Jan 26 20:24:48 2019 +0100 @@ -18,6 +18,7 @@ : size_hint: 1, None height: dp(70) + avatar: avatar canvas.before: Color: rgba: self.bg_color @@ -25,7 +26,7 @@ pos: self.pos size: self.size Image: - source: root.getImage(self) + id: avatar size_hint: None, None size: dp(64), dp(64) Label: