64 lines
2.0 KiB
QML
64 lines
2.0 KiB
QML
import QtQuick 2.3
|
|
import shared.controls 1.0
|
|
import shared 1.0
|
|
import shared.panels 1.0
|
|
|
|
import utils 1.0
|
|
|
|
Item {
|
|
id: root
|
|
property bool isHovered: false
|
|
height: childrenRect.height
|
|
width: chatName.width + (ensOrAlias.visible ? ensOrAlias.width + ensOrAlias.anchors.leftMargin : 0)
|
|
property alias label: chatName
|
|
|
|
property string displayName
|
|
property string localName
|
|
property bool amISender
|
|
|
|
signal clickMessage(bool isProfileClick)
|
|
|
|
StyledTextEdit {
|
|
id: chatName
|
|
text: displayName
|
|
color: text.startsWith("@") || amISender || localName !== "" ? Style.current.blue : Style.current.secondaryText
|
|
font.weight: Font.Medium
|
|
font.pixelSize: Style.current.secondaryTextFontSize
|
|
font.underline: root.isHovered
|
|
readOnly: true
|
|
wrapMode: Text.WordWrap
|
|
selectByMouse: true
|
|
MouseArea {
|
|
cursorShape: Qt.PointingHandCursor
|
|
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
|
anchors.fill: parent
|
|
hoverEnabled: true
|
|
onEntered: {
|
|
root.isHovered = true
|
|
}
|
|
onExited: {
|
|
root.isHovered = false
|
|
}
|
|
onClicked: {
|
|
if (!!messageContextMenu) {
|
|
// Set parent, X & Y positions for the messageContextMenu
|
|
messageContextMenu.parent = root
|
|
messageContextMenu.setXPosition = function() { return 0}
|
|
messageContextMenu.setYPosition = function() { return root.height + 4}
|
|
}
|
|
root.clickMessage(true);
|
|
}
|
|
}
|
|
}
|
|
|
|
StyledText {
|
|
id: ensOrAlias
|
|
visible: localName !== "" && displayName.startsWith("@")
|
|
text: displayName
|
|
color: Style.current.secondaryText
|
|
font.pixelSize: chatName.font.pixelSize
|
|
anchors.left: chatName.right
|
|
anchors.leftMargin: chatName.visible ? 4 : 0
|
|
}
|
|
}
|