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

106 lines
2.8 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 shared.status 1.0
import shared.controls.chat 1.0
import StatusQ.Controls 0.1 as StatusQControls
import StatusQ.Components 0.1
import StatusQ.Core.Theme 0.1
Rectangle {
id: root
property string username: "Jotaro Kujo"
property string keyUid: "0x123345677890987654321123456"
property string address: ""
property var colorHash
property int colorId
property url image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAg0lEQVR4nOzXwQmAMBAFURV7sQybsgybsgyr0QYUlE1g+Mw7ioQMe9lMQwhDaAyhMYTGEJqYkPnrj/t5XE/ft2UdW1yken7MRAyhMYTGEBpDaAyhKe9JbzvSX9WdLWYihtAYQuMLkcYQGkPUScxEDKExhMYQGkNoDKExhMYQmjsAAP//ZfIUZgXTZXQAAAAASUVORK5CYII="
property var onAccountSelect: function() {}
property var isSelected: function() {}
property bool selected: {
return isSelected(index, keyUid)
}
property bool isHovered: false
height: 64
anchors.right: parent.right
anchors.left: parent.left
border.width: 0
color: getBgColor()
radius: Theme.radius
function getBgColor() {
if (selected) return Theme.palette.secondaryBackground
if (isHovered) return Theme.palette.backgroundHover
return Theme.palette.transparent
}
UserImage {
id: accountImage
anchors.left: parent.left
anchors.leftMargin: Theme.padding
anchors.verticalCenter: parent.verticalCenter
name: root.username
image: root.image
colorId: root.colorId
colorHash: root.colorHash
}
StyledText {
id: usernameText
text: username
elide: Text.ElideRight
anchors.right: parent.right
anchors.rightMargin: Theme.padding + radio.width
font.pixelSize: 17
anchors.top: accountImage.top
anchors.left: accountImage.right
anchors.leftMargin: Theme.padding
}
StyledText {
id: addressText
width: 108
text: address
font.family: Theme.monoFont.name
elide: Text.ElideMiddle
anchors.bottom: accountImage.bottom
anchors.bottomMargin: 0
anchors.left: usernameText.left
anchors.leftMargin: 0
font.pixelSize: 15
color: Theme.palette.secondaryText
}
StatusQControls.StatusRadioButton {
id: radio
anchors.right: parent.right
anchors.rightMargin: Theme.padding
anchors.verticalCenter: parent.verticalCenter
checked: root.selected
}
MouseArea {
hoverEnabled: true
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
onAccountSelect(index)
}
onEntered: {
root.isHovered = true
}
onExited: {
root.isHovered = false
}
}
}