status-desktop/ui/imports/shared/controls/chat/UserImage.qml

62 lines
1.5 KiB
QML

import QtQuick 2.3
import shared 1.0
import shared.panels 1.0
import utils 1.0
import StatusQ.Components 0.1
import StatusQ.Core.Theme 0.1
Loader {
id: root
property int imageHeight: 44
property int imageWidth: 44
property string name
property string pubkey
property string image
property bool showRing: true
property bool interactive: true
property bool disabled: false
property rect cropRect: undefined
property int colorId: Utils.colorIdForPubkey(pubkey)
property var colorHash: Utils.getColorHashAsJson(pubkey)
signal clicked()
sourceComponent: StatusSmartIdenticon {
name: root.name
asset {
width: root.imageWidth
height: root.imageHeight
color: Theme.palette.userCustomizationColors[root.colorId]
name: root.image
charactersLen: 2
isImage: true
cropRect: root.cropRect
}
ringSettings {
ringSpecModel: root.showRing ? root.colorHash : undefined
}
Loader {
anchors.fill: parent
active: root.interactive
sourceComponent: MouseArea {
cursorShape: hoverEnabled ? Qt.PointingHandCursor : Qt.ArrowCursor
hoverEnabled: !root.disabled
onClicked: {
if (!root.disabled) {
root.clicked()
}
}
}
}
}
}