status-desktop/ui/imports/shared/status/StatusChatInputReplyArea.qml
Lukáš Tinkl d9d6d90dc9 [Style] remove legacy Style and its themes
- legacy Style and ThemePalette removed
- moved and deduplicated font definitions into `Theme` (unrelated to a
color palette)
- `Style.current.foo` -> `Theme.foo`
- `Style.current.fooColor` -> `Theme.palette.fooColor`
- upgrade the imports to 5.15
- removed some mode dead components

Fixes #16514
2024-10-22 15:54:31 +02:00

145 lines
4.2 KiB
QML

import QtQuick 2.15
import QtQuick.Controls 2.15
import utils 1.0
import shared 1.0
import shared.panels 1.0
import StatusQ.Core 0.1
import StatusQ.Core.Theme 0.1
import StatusQ.Core.Utils 0.1 as StatusQUtils
import StatusQ.Components.private 0.1
Rectangle {
id: root
implicitHeight: (root.contentType === Constants.messageContentType.imageType)
? replyToUsername.height + imageThumbnail.height + Theme.padding
: (root.contentType === Constants.messageContentType.stickerType)
? replyToUsername.height + stickerThumbnail.height + Theme.padding
: 50
color: Theme.palette.baseColor3
radius: 16
clip: true
property string userName: ""
property string message : ""
property string image: ""
property string stickerData: ""
property string messageId: ""
property int contentType: -1
property var album: []
property int albumCount: 0
signal closeButtonClicked()
Rectangle {
color: parent.color
anchors.bottom: parent.bottom
anchors.right: parent.right
height: parent.height / 2
width: 32
radius: Theme.radius
}
StyledText {
id: replyToUsername
text: "↪ " + userName
color: Theme.palette.textColor
anchors.top: parent.top
anchors.topMargin: Theme.halfPadding
anchors.left: parent.left
anchors.leftMargin: Theme.smallPadding
font.pixelSize: 13
font.weight: Font.Medium
}
Rectangle {
anchors.left: replyToUsername.left
anchors.top: replyToUsername.bottom
anchors.topMargin: -3
anchors.right: parent.right
anchors.rightMargin: Theme.padding
anchors.bottom: parent.bottom
clip: true
color: Theme.palette.transparent
visible: (root.contentType !== Constants.messageContentType.imageType) && (root.contentType !== Constants.messageContentType.stickerType)
StyledText {
id: replyText
text: StatusQUtils.Utils.getMessageWithStyle(StatusQUtils.Emoji.parse(StatusQUtils.Utils.linkifyAndXSS(message)), false)
anchors.fill: parent
elide: Text.ElideRight
font.pixelSize: 13
font.weight: Font.Normal
textFormat: Text.RichText
color: Theme.palette.textColor
}
}
StatusMessageImageAlbum {
id: imageThumbnail
anchors.left: replyToUsername.left
anchors.top: replyToUsername.bottom
anchors.topMargin: 2
album: root.albumCount > 0 ? root.album : [root.image]
albumCount: root.albumCount > 0 ? root.albumCount : 1
imageWidth: 56
loadingComponentHeight: 56
shapeType: StatusImageMessage.ShapeType.ROUNDED
}
StatusSticker {
id: stickerThumbnail
anchors.left: replyToUsername.left
anchors.top: replyToUsername.bottom
anchors.topMargin: 2
imageWidth: 64
imageHeight: 64
stickerData: root.stickerData
color: Theme.palette.transparent
contentType: root.contentType
}
RoundButton {
id: closeBtn
implicitWidth: 20
implicitHeight: 20
radius: 10
padding: 0
anchors.top: parent.top
anchors.topMargin: 4
anchors.right: parent.right
anchors.rightMargin: 4
contentItem: StatusIcon {
id: iconImg
source: Theme.svg("close")
color: Theme.palette.textColor
sourceSize: Qt.size(width, height)
width: closeBtn.width
height: closeBtn.height
}
background: Rectangle {
color: "transparent"
width: closeBtn.width
height: closeBtn.height
radius: closeBtn.radius
}
onClicked: {
root.userName = ""
root.message = ""
root.messageId = ""
root.stickerData = ""
root.image = ""
root.contentType = -1
root.closeButtonClicked()
}
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
onPressed: mouse.accepted = false
}
}
}