view cagou/kv/menu.kv @ 439:12d188cb1206

core: use of new profileConnected method: bookmarks cache is now retrieved in profileConnected, as getting it in ProfilePlugged could result in an exception is client was not fully connected (if plugins were not all initialised).
author Goffi <goffi@goffi.org>
date Sat, 07 Mar 2020 00:05:49 +0100
parents 5b50b7ef2617
children ee4913d35c55
line wrap: on
line source

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

<AboutContent>:
    text_size: self.size
    color: 1, 1, 1, 1
    halign: "center"
    valign: "middle"

<AboutPopup>:
    title_align: "center"
    size_hint: 0.8, 0.8

<ExtraMenuItem>:
    size_hint: 1, None
    height: dp(30)

<ExtraSideMenu>:
    bg_color: 0.23, 0.23, 0.23, 1
    ExtraMenuItem:
        text: _("About")
        on_press: root.onAbout()
    Widget:
        # to push content to the top

<TransferMenu>:
    items_layout: items_layout
    orientation: "vertical"
    bg_color: app.c_prim
    size_hint: 1, 0.5
    padding: [app.MARGIN_LEFT, 3, app.MARGIN_RIGHT, 0]
    spacing: dp(5)
    transfer_info: transfer_info
    upload_btn: upload_btn
    on_encrypted: self.updateTransferInfo()
    canvas.after:
        Color:
            rgba: app.c_prim_dark
        Line:
            points: 0, self.y + self.height, self.width + self.x, self.y + self.height
            width: 1
    BoxLayout:
        size_hint: 1, None
        height: dp(50)
        spacing: dp(10)
        Widget:
        SymbolToggleLabel
            id: upload_btn
            symbol: "upload"
            text: _(u"upload")
            group: "transfer"
            state: "down"
            on_state: root.updateTransferInfo()
        SymbolToggleLabel
            id: send_btn
            symbol: "loop-alt"
            text: _(u"send")
            group: "transfer"
        Widget:
    Label:
        id: transfer_info
        size_hint: 1, None
        padding: 0, dp(5)
        markup: True
        text_size: root.width, None
        size: self.texture_size
        halign: 'center'
        canvas.before:
            Color:
                rgba: app.c_prim_dark
            RoundedRectangle:
                pos: self.pos
                size: self.size
    ScrollView:
        do_scroll_x: False
        StackLayout:
            size_hint: 1, None
            padding: 20, 0
            spacing: 15, 5
            id: items_layout

<TransferItem>:
    orientation: "vertical"
    size_hint: None, None
    size: dp(50), dp(90)
    IconButton:
        source: root.plug_info['icon_medium']
        allow_stretch: True
        size_hint: 1, None
        height: dp(50)
    Label:
        color: 0, 0, 0, 1
        text: root.plug_info['name']
        text_size: self.size
        halign: "center"
        valign: "top"


<SideMenu>:
    orientation: "vertical"
    size_hint: self.size_hint_close
    canvas.before:
        Color:
            rgba: self.bg_color
        Rectangle:
            pos: self.pos
            size: self.size


<EntitiesSelectorMenu>:
    bg_color: 0, 0, 0, 0.9
    filter_input: filter_input
    layout: layout
    callback_on_close: True
    Label:
        size_hint: 1, None
        text_size: root.width, None
        size: self.texture_size
        padding: dp(5), dp(5)
        color: 1, 1, 1, 1
        text: root.instructions
        halign: "center"
    TextInput:
        id: filter_input
        size_hint: 1, None
        height: dp(32)
        multiline: False
        hint_text: _(u"enter filter here")
    ScrollView:
        size_hint: 1, 1
        BoxLayout:
            id: layout
            orientation: "vertical"
            size_hint: 1, None
            height: self.minimum_height
            spacing: dp(5)