changeset 107:f0cf44df8486

JidWidget: first draft
author Goffi <goffi@goffi.org>
date Sun, 15 Jan 2017 21:21:22 +0100
parents 9909ed7a7a20
children 953ddf817b8a
files src/cagou/core/common.py src/cagou/kv/common.kv
diffstat 2 files changed, 56 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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)
--- /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 <http://www.gnu.org/licenses/>.
+
+
+<JidWidget>:
+    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)