status-desktop/ui/imports/shared/controls/AccountSelectorHeader.qml

66 lines
1.8 KiB
QML

import QtQuick 2.15
import QtQuick.Layouts 1.15
import StatusQ.Components 0.1
import StatusQ.Core 0.1
import StatusQ.Core.Theme 0.1
import utils 1.0
AccountSelector {
id: root
control.padding: 0
control.rightInset: -6 //broken indicator positioning
control.spacing: 4
indicator.color: Theme.palette.indirectColor1
control.background: Rectangle {
objectName: "headerBackground"
radius: 8
color: d.headerStyleBackgroundColor
HoverHandler {
cursorShape: root.enabled ? Qt.PointingHandCursor : undefined
}
}
contentItem: RowLayout {
id: contentItemRow
spacing: 0
StatusSmartIdenticon {
id: assetContent
objectName: "assetContent"
asset.emoji: currentAccount.emoji ?? ""
asset.color: d.headerStyleBackgroundColor
asset.width: 32
asset.height: asset.width
asset.isLetterIdenticon: !!currentAccount.emoji
asset.bgColor: Theme.palette.primaryColor3
visible: !!currentAccount.emoji
}
StatusBaseText {
id: textContent
objectName: "textContent"
Layout.fillWidth: true
Layout.fillHeight: true
text: currentAccount.name ?? ""
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
color: Utils.getContrastingColor(d.headerStyleBackgroundColor)
}
}
QtObject {
id: d
readonly property color headerStyleBackgroundColor: !!currentAccount ? root.control.hovered ?
Utils.getHoveredColor(currentAccount.colorId) :
Utils.getColorForId(currentAccount.colorId) : "transparent"
}
}