# HG changeset patch # User Goffi # Date 1484511682 -3600 # Node ID f0cf44df84868581f3418385849a8e18e8579d4f # Parent 9909ed7a7a20ee87b21abb1a2e692d42cde8c134 JidWidget: first draft diff -r 9909ed7a7a20 -r f0cf44df8486 src/cagou/core/common.py --- a/src/cagou/core/common.py Sun Jan 15 21:21:20 2017 +0100 +++ b/src/cagou/core/common.py Sun Jan 15 21:21:22 2017 +0100 @@ -21,7 +21,26 @@ from kivy.uix.image import Image from kivy.uix.behaviors import ButtonBehavior +from kivy.uix.boxlayout import BoxLayout +from cagou import G class IconButton(ButtonBehavior, Image): pass + + +class JidWidget(ButtonBehavior, BoxLayout): + + def __init__(self, jid, profile, **kwargs): + self.jid = jid + self.profile = profile + self.nick = kwargs.get('nick') + super(JidWidget, self).__init__(**kwargs) + + def getImage(self, wid): + host = G.host + if host.contact_lists[self.profile].isRoom(self.jid.bare): + wid.opacity = 0 + return "" + else: + return host.getAvatar(self.jid, profile=self.profile) or host.getDefaultAvatar(self.jid) diff -r 9909ed7a7a20 -r f0cf44df8486 src/cagou/kv/common.kv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cagou/kv/common.kv Sun Jan 15 21:21:22 2017 +0100 @@ -0,0 +1,37 @@ +# Cagou: desktop/mobile frontend for Salut à Toi XMPP client +# Copyright (C) 2016 Jérôme Poisson (goffi@goffi.org) + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. + +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +: + size_hint: None, None + height: dp(70) + canvas.before: + Color: + rgba: 0.2, 0.2, 0.2, 1 + Rectangle: + pos: self.pos + size: self.size + Image: + source: root.getImage(self) + size_hint: None, None + size: dp(64), dp(64) + Label: + bold: True + text: root.jid + text_size: self.size + halign: 'left' + valign: 'middle' + padding_x: dp(20)