Warning, /network/tokodon/src/content/ui/ConversationDelegate.qml is written in an unsupported language. File is not indexed.

0001 // SPDX-FileCopyrightText: 2022 Carl Schwan <carl@carlschwan.eu>
0002 // SPDX-License-Identifier: LGPL-2.1-or-later
0003 
0004 import QtQuick 2.15
0005 import org.kde.kirigami 2.20 as Kirigami
0006 import QtQuick.Controls 2.15 as QQC2
0007 import QtQuick.Layouts 1.15
0008 import org.kde.kirigamiaddons.delegates 1.0 as Delegates
0009 import org.kde.kmasto 1.0
0010 
0011 Delegates.IndicatorItemDelegate {
0012     id: root
0013 
0014     required property string id
0015     required property string content
0016     required property var authorIdentity
0017     required property string relativeTime
0018     required property int conversationsCount
0019     required property string conversationId
0020 
0021     readonly property bool showSeparator: root.index !== conversationsCount - 1
0022 
0023     signal markAsRead(conversationId: string)
0024 
0025     onClicked: {
0026         Navigation.openThread(root.id)
0027         if (root.unread) {
0028             root.markAsRead(root.conversationId);
0029         }
0030     }
0031 
0032     contentItem: RowLayout {
0033         id: rowLayout
0034 
0035         Kirigami.Avatar {
0036             name: root.authorIdentity.displayName
0037             source: root.authorIdentity.avatarUrl
0038             Layout.rightMargin: Kirigami.Units.largeSpacing
0039             sourceSize.width: Kirigami.Units.gridUnit + Kirigami.Units.largeSpacing * 2
0040             sourceSize.height: Kirigami.Units.gridUnit + Kirigami.Units.largeSpacing * 2
0041             Layout.preferredWidth: Kirigami.Units.gridUnit + Kirigami.Units.largeSpacing * 2
0042             Layout.preferredHeight: Kirigami.Units.gridUnit + Kirigami.Units.largeSpacing * 2
0043         }
0044 
0045         ColumnLayout {
0046             Layout.fillWidth: true
0047             spacing: Kirigami.Units.smallSpacing
0048 
0049             RowLayout {
0050                 Layout.fillWidth: true
0051                 QQC2.Label {
0052                     Layout.fillWidth: true
0053                     text: root.authorIdentity.displayNameHtml
0054                     elide: Text.ElideRight
0055                     font.weight: root.unread ? Font.Bold : Font.Normal
0056                 }
0057                 QQC2.Label {
0058                     text: root.relativeTime
0059                     color: Kirigami.Theme.disabledTextColor
0060                 }
0061             }
0062 
0063             QQC2.Label {
0064                 color: Kirigami.Theme.disabledTextColor
0065                 Layout.fillWidth: true
0066                 maximumLineCount: 1
0067                 elide: Text.ElideRight
0068                 text: root.content
0069             }
0070         }
0071     }
0072 }