Warning, /network/tokodon/src/content/ui/StatusDelegate/UserInteractionLabel.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com> 0002 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0003 0004 import QtQuick 0005 import QtQuick.Layouts 0006 import QtQuick.Controls 2 as QQC2 0007 0008 import org.kde.kirigami 2 as Kirigami 0009 import org.kde.kirigamiaddons.components 1 as KirigamiComponents 0010 0011 import org.kde.tokodon 0012 import org.kde.tokodon.private 0013 0014 // The label that sits above posts, e.g. "FooBar replied to" or "BarFoo boosted" 0015 RowLayout { 0016 id: root 0017 0018 readonly property var identity: { 0019 if (replyAuthorIdentity) { 0020 return replyAuthorIdentity; 0021 } else if (boostAuthorIdentity) { 0022 return boostAuthorIdentity; 0023 } 0024 } 0025 0026 required property bool isBoosted 0027 required property bool isReply 0028 required property var type 0029 required property var boostAuthorIdentity 0030 required property var replyAuthorIdentity 0031 0032 Layout.fillWidth: true 0033 0034 Kirigami.Icon { 0035 source: { 0036 if (root.isBoosted) { 0037 return "tokodon-post-boost" 0038 } else if (root.isReply) { 0039 return "tokodon-post-reply" 0040 } 0041 0042 return '' 0043 } 0044 0045 isMask: true 0046 color: Kirigami.Theme.disabledTextColor 0047 0048 Layout.alignment: Qt.AlignRight | Qt.AlignVCenter 0049 Layout.preferredHeight: Kirigami.Units.largeSpacing * 2 0050 Layout.preferredWidth: Kirigami.Units.largeSpacing * 2 0051 } 0052 0053 QQC2.AbstractButton { 0054 contentItem: RowLayout { 0055 KirigamiComponents.AvatarButton { 0056 implicitHeight: Math.round(Kirigami.Units.gridUnit * 1.5) 0057 implicitWidth: implicitHeight 0058 0059 name: root.identity ? root.identity.displayName : '' 0060 source: root.identity ? root.identity.avatarUrl : '' 0061 cache: true 0062 0063 onClicked: Navigation.openAccount(root.identity.id) 0064 0065 QQC2.ToolTip.text: i18n("View Profile") 0066 QQC2.ToolTip.visible: hovered 0067 QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay 0068 } 0069 QQC2.Label { 0070 text: { 0071 if (root.isBoosted) { 0072 return root.identity ? i18n("%1 boosted", root.identity.displayNameHtml) : ''; 0073 } else if (root.isReply) { 0074 return root.identity ? i18n("In reply to %1", root.identity.displayNameHtml) : ''; 0075 } 0076 } 0077 color: Kirigami.Theme.disabledTextColor 0078 font: Config.defaultFont 0079 0080 Layout.alignment: Qt.AlignBaseline 0081 Layout.fillWidth: true 0082 } 0083 } 0084 } 0085 }