comparison cagou/core/common.py @ 459:72290ebfaa8b

core (common), contact_list: new `data` property: when this property is set, the `source` is automatically set from avatar data.
author Goffi <goffi@goffi.org>
date Sun, 19 Apr 2020 17:06:45 +0200
parents 1dd6db69406a
children 3c9ba4a694ef
comparison
equal deleted inserted replaced
458:1dd6db69406a 459:72290ebfaa8b
19 """common simple widgets""" 19 """common simple widgets"""
20 20
21 import json 21 import json
22 from functools import partial, total_ordering 22 from functools import partial, total_ordering
23 from kivy.uix.widget import Widget 23 from kivy.uix.widget import Widget
24 from kivy.uix.image import Image, AsyncImage
25 from kivy.uix.label import Label 24 from kivy.uix.label import Label
26 from kivy.uix.behaviors import ButtonBehavior 25 from kivy.uix.behaviors import ButtonBehavior
27 from kivy.uix.behaviors import ToggleButtonBehavior 26 from kivy.uix.behaviors import ToggleButtonBehavior
28 from kivy.uix.stacklayout import StackLayout 27 from kivy.uix.stacklayout import StackLayout
29 from kivy.uix.boxlayout import BoxLayout 28 from kivy.uix.boxlayout import BoxLayout
35 from sat.core import log as logging 34 from sat.core import log as logging
36 from sat.tools.common import data_format 35 from sat.tools.common import data_format
37 from sat_frontends.quick_frontend import quick_chat 36 from sat_frontends.quick_frontend import quick_chat
38 from .constants import Const as C 37 from .constants import Const as C
39 from .common_widgets import CategorySeparator 38 from .common_widgets import CategorySeparator
39 from .image import Image, AsyncImage
40 from cagou import G 40 from cagou import G
41 41
42 log = logging.getLogger(__name__) 42 log = logging.getLogger(__name__)
43 43
44 UNKNOWN_SYMBOL = 'Unknown symbol name' 44 UNKNOWN_SYMBOL = 'Unknown symbol name'
47 class IconButton(ButtonBehavior, Image): 47 class IconButton(ButtonBehavior, Image):
48 pass 48 pass
49 49
50 50
51 class Avatar(Image): 51 class Avatar(Image):
52 pass 52 data = properties.DictProperty(allownone=True)
53
54 def on_kv_post(self, __):
55 if not self.source:
56 self.source = G.host.getDefaultAvatar()
57
58 def on_data(self, __, data):
59 if data is None:
60 self.source = G.host.getDefaultAvatar()
61 else:
62 self.source = data['path']
53 63
54 64
55 class NotifLabel(Label): 65 class NotifLabel(Label):
56 pass 66 pass
57 67