Warning, /plasma-mobile/spacebar/src/contents/ui/ChatDetailPage.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2022 Michael Lang <criticaltemp@protonmail.com>
0002 //
0003 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004
0005 import QtQuick
0006 import QtQuick.Layouts
0007 import QtQuick.Controls as Controls
0008
0009 import org.kde.kirigami as Kirigami
0010 import org.kde.kirigamiaddons.components as Components
0011 import org.kde.kirigamiaddons.delegates as Delegates
0012
0013 import org.kde.spacebar
0014
0015 Kirigami.ScrollablePage {
0016 title: i18n("Details")
0017 padding: 0
0018
0019 property var people
0020
0021 ListView {
0022 id: contactsList
0023
0024 header: Column {
0025 width: parent.width
0026
0027 Kirigami.Heading {
0028 level: 5
0029 type: Kirigami.Heading.Type.Primary
0030 Layout.fillWidth: true
0031 leftPadding: Kirigami.Units.largeSpacing * 2
0032 text: i18np("%1 person", "%1 people", people.length)
0033 color: Kirigami.Theme.disabledTextColor
0034 }
0035
0036 Delegates.RoundedItemDelegate {
0037 id: delegateItem
0038 width: parent.width
0039 implicitHeight: Kirigami.Units.iconSizes.medium + Kirigami.Units.largeSpacing * 2
0040 verticalPadding: 0
0041 contentItem: RowLayout {
0042 spacing: Kirigami.Units.largeSpacing
0043
0044 Rectangle {
0045 Layout.preferredWidth: Kirigami.Units.iconSizes.medium
0046 Layout.preferredHeight: Kirigami.Units.iconSizes.medium
0047 radius: width / 2
0048 border.color: Kirigami.Theme.linkColor
0049 border.width: 2
0050 color: "transparent"
0051
0052 Text {
0053 anchors.centerIn: parent
0054 text: "+"
0055 color: Kirigami.Theme.linkColor
0056 font.bold: true
0057 font.pixelSize: parent.height / 1.5
0058 }
0059 }
0060
0061 Controls.Label {
0062 Layout.fillWidth: true
0063 text: i18n("Add people")
0064 color: Kirigami.Theme.textColor
0065 }
0066 }
0067 onClicked: pageStack.push("qrc:/NewConversationPage.qml", { selected: people.slice() })
0068 }
0069 }
0070
0071 clip: true
0072 reuseItems: false
0073 currentIndex: -1
0074
0075 model: people
0076
0077 delegate: Delegates.RoundedItemDelegate {
0078 id: delegateItem
0079 width: contactsList.width
0080 implicitHeight: Kirigami.Units.iconSizes.medium + Kirigami.Units.largeSpacing * 2
0081 verticalPadding: 0
0082 contentItem: RowLayout {
0083 spacing: Kirigami.Units.largeSpacing
0084
0085 Components.Avatar {
0086 Layout.preferredWidth: Kirigami.Units.iconSizes.medium
0087 Layout.preferredHeight: Kirigami.Units.iconSizes.medium
0088 source: modelData.phoneNumber ? "image://avatar/" + modelData.phoneNumber : ""
0089 name: modelData.name
0090 imageMode: Components.Avatar.ImageMode.AdaptiveImageOrInitals
0091 }
0092
0093 ColumnLayout {
0094 Layout.fillWidth: true
0095 spacing: 0
0096
0097 Controls.Label {
0098 id: labelItem
0099 Layout.fillWidth: true
0100 Layout.alignment: subtitleItem.visible ? Qt.AlignLeft | Qt.AlignBottom : Qt.AlignLeft | Qt.AlignVCenter
0101 text: modelData.name || Utils.phoneNumberToInternationalString(Utils.phoneNumber(modelData.phoneNumber))
0102 elide: Text.ElideRight
0103 color: Kirigami.Theme.textColor
0104 }
0105 Controls.Label {
0106 id: subtitleItem
0107 visible: text
0108 Layout.fillWidth: true
0109 Layout.alignment: Qt.AlignLeft | Qt.AlignTop
0110 text: modelData.name ? Utils.phoneNumberToInternationalString(Utils.phoneNumber(modelData.phoneNumber)) : ""
0111 elide: Text.ElideRight
0112 color: Kirigami.Theme.textColor
0113 opacity: 0.7
0114 font: Kirigami.Theme.smallFont
0115 }
0116 }
0117 }
0118 onPressAndHold: {
0119 showPassiveNotification("Number copied to clipboard", 3000);
0120 Utils.copyTextToClipboard(modelData.phoneNumber)
0121 }
0122 onClicked: Utils.launchPhonebook()
0123 }
0124 }
0125 }