/* Copyright (C) 2014-2016 Dan Chapman <dpniel@ubuntu.com>

   This file is part of the dekko

   This program is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public License as
   published by the Free Software Foundation; either version 2 of
   the License or (at your option) version 3 or any later version
   accepted by the membership of KDE e.V. (or its successor approved
   by the membership of KDE e.V.), which shall act as a proxy
   defined in Section 14 of version 3 of the license.

   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 General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
import QtQuick 2.4
import Ubuntu.Components 1.3
import Dekko.Theme 0.2
import "../../Components"

ListItem {
    id: root
    height: units.gu(5)
    property alias model: identities.model
    property alias selectedIndex: identities.selectedIndex

    expansion.height: info.height + identities.height

    ListItemWithActions {
        id: info
        height: units.gu(5)
        showDivider: root.expansion.expanded
        anchors {
            top: parent.top
            left: parent.left
            right: parent.right
        }

        Item {
            anchors {
                left: parent.left
                leftMargin: units.gu(2)
                top: parent.top
                bottom: parent.bottom
            }

            Label {
                id: label
                anchors {
                    left: parent.left
                    verticalCenter: parent.verticalCenter
                }
                text: qsTr("From") + " : "
                font.weight: Style.common.fontWeight
            }
            UbuntuShape {
                id: delegate
                property string text: model.get(model.selectedIndex).name
                property string emailAddress: model.get(model.selectedIndex).email
                signal remove()
                aspect: UbuntuShape.Flat
                color: Qt.rgba(0, 0, 0, 0.05)
                radius: "small"
                height: units.gu(3)
                width: inner_avatar.width + identityLabel.width + units.gu(1.5)
                anchors {
                    left: label.right
                    top: parent.top
                    topMargin: units.gu(1)
                }

                Avatar {
                    id: inner_avatar
                    width: height
                    anchors {
                        left: parent.left
                        top: parent.top
                        bottom: parent.bottom
                        margins: units.dp(1)
                    }
                    name: delegate.text
                    initials: Style.avatar.getInitialsForName(inner_avatar.name)
                    email: delegate.emailAddress
                    fontSize: "x-small"
                    fontWeight: Style.common.fontWeight
                    validContact: true
                }

                Label {
                    id: identityLabel
                    anchors {
                        left: inner_avatar.right
                        leftMargin: units.gu(0.5)
                        verticalCenter: parent.verticalCenter
                    }
                    font.weight: Style.common.fontWeight
                    text: delegate.text
                }
            }
        }

        Icon {
            name: root.expansion.expanded ? "up" : "down"
            height: units.gu(2)
            width: height
            anchors {
                right: parent.right
                verticalCenter: parent.verticalCenter
                rightMargin: units.gu(2)
            }
        }

        onItemClicked: root.expansion.expanded = !root.expansion.expanded
    }
    IdentityList {
        id: identities
        visible: root.expansion.expanded
        anchors {
            left: parent.left
            right: parent.right
            top: info.bottom
        }
        selectedIndex: root.selectedIndex
        onSelected: {
            root.model.selectedIndex = index
            root.expansion.expanded = !root.expansion.expanded
        }
    }
}

