2021-01-25 20:50:42 +00:00
|
|
|
import QtQuick 2.13
|
|
|
|
import QtGraphicalEffects 1.13
|
2021-10-14 20:30:51 +00:00
|
|
|
|
2021-10-18 10:34:16 +00:00
|
|
|
import StatusQ.Controls 0.1
|
2021-09-28 15:04:06 +00:00
|
|
|
|
|
|
|
import utils 1.0
|
2021-01-25 20:50:42 +00:00
|
|
|
|
|
|
|
Rectangle {
|
2021-07-16 15:02:47 +00:00
|
|
|
id: buttonsContainer
|
2021-01-25 20:50:42 +00:00
|
|
|
property bool parentIsHovered: false
|
|
|
|
property int containerMargin: 2
|
2021-03-24 17:30:15 +00:00
|
|
|
property int contentType: 2
|
2021-07-16 15:02:47 +00:00
|
|
|
property var messageContextMenu
|
2021-08-06 15:44:57 +00:00
|
|
|
property bool showMoreButton: true
|
2021-10-01 15:58:36 +00:00
|
|
|
property bool activityCenterMessage
|
|
|
|
property string fromAuthor
|
|
|
|
property alias editBtnActive: editBtn.active
|
|
|
|
signal hoverChanged(bool hovered)
|
|
|
|
signal setMessageActive(string messageId, bool active)
|
2021-11-02 19:58:48 +00:00
|
|
|
signal clickMessage(bool isProfileClick, bool isSticker, bool isImage, var image, bool emojiOnly, bool hideEmojiPicker)
|
2021-01-25 20:50:42 +00:00
|
|
|
|
2021-11-01 14:03:07 +00:00
|
|
|
visible: !placeholderMessage && !activityCenterMessage &&
|
2021-06-10 19:20:43 +00:00
|
|
|
(buttonsContainer.parentIsHovered || isMessageActive)
|
|
|
|
&& contentType !== Constants.transactionType
|
2021-01-25 20:50:42 +00:00
|
|
|
width: buttonRow.width + buttonsContainer.containerMargin * 2
|
|
|
|
height: 36
|
|
|
|
radius: Style.current.radius
|
2021-02-18 19:07:23 +00:00
|
|
|
color: Style.current.modalBackground
|
2021-01-25 20:50:42 +00:00
|
|
|
z: 52
|
|
|
|
|
|
|
|
layer.enabled: true
|
|
|
|
layer.effect: DropShadow {
|
|
|
|
width: buttonsContainer.width
|
|
|
|
height: buttonsContainer.height
|
|
|
|
x: buttonsContainer.x
|
|
|
|
y: buttonsContainer.y + 10
|
|
|
|
visible: buttonsContainer.visible
|
|
|
|
source: buttonsContainer
|
|
|
|
horizontalOffset: 0
|
|
|
|
verticalOffset: 2
|
|
|
|
radius: 10
|
|
|
|
samples: 15
|
|
|
|
color: "#22000000"
|
|
|
|
}
|
|
|
|
|
|
|
|
MouseArea {
|
|
|
|
anchors.fill: buttonsContainer
|
|
|
|
acceptedButtons: Qt.NoButton
|
|
|
|
hoverEnabled: true
|
|
|
|
onEntered: {
|
|
|
|
buttonsContainer.hoverChanged(true)
|
|
|
|
}
|
|
|
|
onExited: {
|
|
|
|
buttonsContainer.hoverChanged(false)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Row {
|
|
|
|
id: buttonRow
|
|
|
|
spacing: buttonsContainer.containerMargin
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: buttonsContainer.containerMargin
|
|
|
|
anchors.verticalCenter: buttonsContainer.verticalCenter
|
|
|
|
height: parent.height - 2 * buttonsContainer.containerMargin
|
|
|
|
|
2021-10-18 10:34:16 +00:00
|
|
|
StatusFlatRoundButton {
|
2021-01-25 20:50:42 +00:00
|
|
|
id: emojiBtn
|
|
|
|
width: 32
|
|
|
|
height: 32
|
2021-10-18 10:34:16 +00:00
|
|
|
icon.name: "reaction-b"
|
|
|
|
type: StatusFlatRoundButton.Type.Tertiary
|
|
|
|
//% "Add reaction"
|
|
|
|
tooltip.text: qsTrId("add-reaction")
|
2021-01-25 20:50:42 +00:00
|
|
|
onClicked: {
|
2021-04-21 15:22:49 +00:00
|
|
|
setMessageActive(messageId, true)
|
2021-08-25 20:31:00 +00:00
|
|
|
// Set parent, X & Y positions for the messageContextMenu
|
|
|
|
buttonsContainer.messageContextMenu.parent = buttonsContainer
|
|
|
|
buttonsContainer.messageContextMenu.setXPosition = function() { return (-Math.abs(buttonsContainer.width - buttonsContainer.messageContextMenu.emojiContainer.width))}
|
|
|
|
buttonsContainer.messageContextMenu.setYPosition = function() { return (-buttonsContainer.messageContextMenu.height - 4)}
|
2021-11-02 19:58:48 +00:00
|
|
|
clickMessage(false, false, false, null, true, false)
|
2021-01-25 20:50:42 +00:00
|
|
|
}
|
2021-10-18 10:34:16 +00:00
|
|
|
onHoveredChanged: buttonsContainer.hoverChanged(this.hovered)
|
2021-01-25 20:50:42 +00:00
|
|
|
}
|
|
|
|
|
2021-10-18 10:34:16 +00:00
|
|
|
StatusFlatRoundButton {
|
2021-01-25 20:50:42 +00:00
|
|
|
id: replyBtn
|
|
|
|
width: 32
|
|
|
|
height: 32
|
2021-10-18 10:34:16 +00:00
|
|
|
icon.name: "reply"
|
|
|
|
type: StatusFlatRoundButton.Type.Tertiary
|
|
|
|
//% "Reply"
|
|
|
|
tooltip.text: qsTrId("message-reply")
|
2021-01-25 20:50:42 +00:00
|
|
|
onClicked: {
|
|
|
|
SelectedMessage.set(messageId, fromAuthor);
|
|
|
|
showReplyArea()
|
2021-07-22 07:47:15 +00:00
|
|
|
if (messageContextMenu.closeParentPopup) {
|
|
|
|
messageContextMenu.closeParentPopup()
|
|
|
|
}
|
2021-01-25 20:50:42 +00:00
|
|
|
}
|
2021-10-18 10:34:16 +00:00
|
|
|
onHoveredChanged: buttonsContainer.hoverChanged(this.hovered)
|
2021-01-25 20:50:42 +00:00
|
|
|
}
|
2021-05-25 19:34:46 +00:00
|
|
|
|
2021-06-29 14:49:32 +00:00
|
|
|
Loader {
|
|
|
|
id: editBtn
|
2021-10-18 10:34:16 +00:00
|
|
|
active: isText && !isEdit && isCurrentUser && showEdit
|
|
|
|
sourceComponent: StatusFlatRoundButton {
|
2021-06-29 14:49:32 +00:00
|
|
|
id: btn
|
|
|
|
width: 32
|
|
|
|
height: 32
|
2021-10-18 10:34:16 +00:00
|
|
|
icon.source: Style.svg("edit-message")
|
|
|
|
type: StatusFlatRoundButton.Type.Tertiary
|
|
|
|
//% "Edit"
|
|
|
|
tooltip.text: qsTrId("edit")
|
|
|
|
onClicked: isEdit = true
|
|
|
|
onHoveredChanged: buttonsContainer.hoverChanged(btn.hovered)
|
2021-06-29 14:49:32 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-10-18 10:34:16 +00:00
|
|
|
StatusFlatRoundButton {
|
2021-05-25 19:34:46 +00:00
|
|
|
id: otherBtn
|
|
|
|
width: 32
|
|
|
|
height: 32
|
2021-10-18 10:34:16 +00:00
|
|
|
visible: showMoreButton
|
|
|
|
icon.name: "more"
|
|
|
|
type: StatusFlatRoundButton.Type.Tertiary
|
|
|
|
//% "More"
|
|
|
|
tooltip.text: qsTrId("more")
|
2021-05-25 19:34:46 +00:00
|
|
|
onClicked: {
|
|
|
|
if (typeof isMessageActive !== "undefined") {
|
2021-05-25 19:38:18 +00:00
|
|
|
setMessageActive(messageId, true)
|
2021-05-25 19:34:46 +00:00
|
|
|
}
|
2021-08-25 20:31:00 +00:00
|
|
|
// Set parent, X & Y positions for the messageContextMenu
|
|
|
|
buttonsContainer.messageContextMenu.parent = buttonsContainer
|
|
|
|
buttonsContainer.messageContextMenu.setXPosition = function() { return (-Math.abs(buttonsContainer.width - 176))}
|
|
|
|
buttonsContainer.messageContextMenu.setYPosition = function() { return (-buttonsContainer.messageContextMenu.height - 4)}
|
2021-08-03 13:54:57 +00:00
|
|
|
clickMessage(false, isSticker, false, null, false, true);
|
2021-05-25 19:34:46 +00:00
|
|
|
}
|
2021-10-18 10:34:16 +00:00
|
|
|
onHoveredChanged: buttonsContainer.hoverChanged(this.hovered)
|
2021-05-25 19:34:46 +00:00
|
|
|
}
|
2021-01-25 20:50:42 +00:00
|
|
|
}
|
|
|
|
}
|