mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-27 05:28:48 +03:00
bd26624ed8
The actual reuseItems is still blocked on a few upstream bugs.
108 lines
2.6 KiB
QML
108 lines
2.6 KiB
QML
// SPDX-FileCopyrightText: 2021 Nheko Contributors
|
|
//
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
import QtQuick 2.12
|
|
import QtQuick.Controls 2.3
|
|
import QtQuick.Layouts 1.2
|
|
import QtQuick.Window 2.2
|
|
import im.nheko 1.0
|
|
|
|
Item {
|
|
id: r
|
|
|
|
property color userColor: "red"
|
|
property double proportionalHeight
|
|
property int type
|
|
property string typeString
|
|
property int originalWidth
|
|
property string blurhash
|
|
property string body
|
|
property string formattedBody
|
|
property string eventId
|
|
property string filename
|
|
property string filesize
|
|
property string url
|
|
property bool isOnlyEmoji
|
|
property string userId
|
|
property string userName
|
|
property string thumbnailUrl
|
|
|
|
width: parent.width
|
|
height: replyContainer.height
|
|
|
|
TapHandler {
|
|
onSingleTapped: chat.model.showEvent(eventId)
|
|
gesturePolicy: TapHandler.ReleaseWithinBounds
|
|
}
|
|
|
|
CursorShape {
|
|
anchors.fill: parent
|
|
cursorShape: Qt.PointingHandCursor
|
|
}
|
|
|
|
Rectangle {
|
|
id: colorLine
|
|
|
|
anchors.top: replyContainer.top
|
|
anchors.bottom: replyContainer.bottom
|
|
width: 4
|
|
color: TimelineManager.userColor(userId, Nheko.colors.window)
|
|
}
|
|
|
|
Column {
|
|
id: replyContainer
|
|
|
|
anchors.left: colorLine.right
|
|
anchors.leftMargin: 4
|
|
width: parent.width - 8
|
|
|
|
Text {
|
|
id: userName_
|
|
|
|
text: TimelineManager.escapeEmoji(userName)
|
|
color: r.userColor
|
|
textFormat: Text.RichText
|
|
|
|
TapHandler {
|
|
onSingleTapped: chat.model.openUserProfile(userId)
|
|
gesturePolicy: TapHandler.ReleaseWithinBounds
|
|
}
|
|
|
|
}
|
|
|
|
MessageDelegate {
|
|
id: reply
|
|
|
|
blurhash: r.blurhash
|
|
body: r.body
|
|
formattedBody: r.formattedBody
|
|
eventId: r.eventId
|
|
filename: r.filename
|
|
filesize: r.filesize
|
|
proportionalHeight: r.proportionalHeight
|
|
type: r.type
|
|
typeString: r.typeString ?? ""
|
|
url: r.url
|
|
thumbnailUrl: r.thumbnailUrl
|
|
originalWidth: r.originalWidth
|
|
isOnlyEmoji: r.isOnlyEmoji
|
|
userId: r.userId
|
|
userName: r.userName
|
|
enabled: false
|
|
width: parent.width
|
|
isReply: true
|
|
}
|
|
|
|
}
|
|
|
|
Rectangle {
|
|
id: backgroundItem
|
|
|
|
z: -1
|
|
height: replyContainer.height
|
|
width: Math.min(Math.max(reply.implicitWidth, userName_.implicitWidth) + 8 + 4, parent.width)
|
|
color: Qt.rgba(userColor.r, userColor.g, userColor.b, 0.1)
|
|
}
|
|
|
|
}
|