view cagou/plugins/plugin_wid_contact_list.kv @ 233:ba8f3a4a5ac7

plugin chat: e2e encryption improvments: OTR buttons has been replaced with a more generic one, which use new encryption mechanisms to retrieve all current encryption algorithms (+ a button for plain text). "refresh" and "authentify" buttons for OTR are temporarily removed. Encryption state is checked on chat widget startup, and current encryption method is selected (it will appear with a different background in encryption menu).
author Goffi <goffi@goffi.org>
date Sat, 11 Aug 2018 18:34:16 +0200
parents 9e5f9f0cee48
children 03d74435c01c
line wrap: on
line source

# Cagou: desktop/mobile frontend for Salut à Toi XMPP client
# Copyright (C) 2016-2018 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/>.

#:import _ sat.core.i18n._
#:import e kivy.utils.escape_markup

<AddContactMenu>:
    padding: dp(20)
    spacing: dp(10)
    Label:
        size_hint: 1, None
        color: 1, 1, 1, 1
        text: _("Please enter new contact JID")
        text_size: root.width, None
        size: self.texture_size
        halign: "center"
        bold: True
    TextInput:
        id: contact_jid
        size_hint: 1, None
        height: sp(30)
        hint_text: _("enter here your new contact JID")
    Button:
        size_hint: 1, None
        height: sp(50)
        text: _("add this contact")
        on_release: root.addContact(contact_jid.text)
    Widget:


<DelContactMenu>:
    padding: dp(20)
    spacing: dp(10)
    Avatar:
        id: avatar
        size_hint: 1, None
        height: dp(60)
        source: root.contact_item.data.get('avatar', app.default_avatar)
        allow_stretch: True
    Label:
        size_hint: 1, None
        color: 1, 1, 1, 1
        text: _("Are you sure you wand to remove [b]{name}[/b] from your contact list?").format(name=e(root.contact_item.jid))
        markup: True
        text_size: root.width, None
        size: self.texture_size
        halign: "center"
    BoxLayout:
        Button:
            background_color: 1, 0, 0, 1
            size_hint: 0.5, None
            height: sp(50)
            text: _("yes, remove it")
            bold: True
            on_release: root.do_delete_contact()
        Button:
            size_hint: 0.5, None
            height: sp(50)
            text: _("no, keep it")
            on_release: root.hide()
    Widget:


<ContactItem>:
    size_hint: None, None
    width: self.base_width
    height: self.minimum_height
    orientation: 'vertical'
    Avatar:
        id: avatar
        size_hint: 1, None
        height: dp(60)
        source: root.data.get('avatar', app.default_avatar)
        allow_stretch: True
    Label:
        id: jid_label
        size_hint: None, None
        text_size: root.base_width, None
        size: self.texture_size
        text: root.jid
        bold: True
        valign: 'middle'
        halign: 'center'


<ContactList>:
    float_layout: float_layout
    layout: layout
    orientation: 'vertical'
    BoxLayout:
        size_hint: 1, None
        height: dp(30)
        Widget:
        SymbolLabel:
            symbol: 'plus-circled'
            text: _("add a contact")
            on_release: root.addContactMenu()
        Widget:
    FloatLayout:
        id: float_layout
        ScrollView:
            size_hint: 1, 1
            pos_hint: {'x': 0, 'y': 0}
            do_scroll_x: False
            scroll_type: ['bars', 'content']
            bar_width: dp(6)
            StackLayout:
                id: layout
                size_hint: 1, None
                height: self.minimum_height
                spacing: 0