74 lines
1.6 KiB
QML
74 lines
1.6 KiB
QML
// SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
import QtQuick 2.12
|
|
import QtQuick.Layouts 1.12
|
|
|
|
HColumnLayout {
|
|
spacing: theme.spacing / 2
|
|
|
|
|
|
default property alias insideData: itemHolder.data
|
|
|
|
readonly property Item item: itemHolder.visibleChildren[0]
|
|
readonly property alias label: label
|
|
readonly property alias errorLabel: errorLabel
|
|
readonly property alias toolTip: toolTip
|
|
|
|
|
|
HRowLayout {
|
|
spacing: parent.spacing
|
|
|
|
HLabel {
|
|
id: label
|
|
wrapMode: Text.Wrap
|
|
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
HIcon {
|
|
svgName: "field-tooltip-available"
|
|
visible: toolTip.text
|
|
|
|
Binding on colorize {
|
|
value: theme.colors.accentElement
|
|
when: hoverHandler.hovered || toolTip.visible
|
|
}
|
|
}
|
|
|
|
HoverHandler {
|
|
id: hoverHandler
|
|
enabled: toolTip.text
|
|
}
|
|
|
|
TapHandler {
|
|
onTapped: toolTip.instantShow()
|
|
enabled: toolTip.text
|
|
}
|
|
|
|
HToolTip {
|
|
id: toolTip
|
|
visible: toolTip.text && hoverHandler.hovered
|
|
}
|
|
}
|
|
|
|
Item {
|
|
id: itemHolder
|
|
// implicitWidth: childrenRect.width
|
|
implicitHeight: childrenRect.height
|
|
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
HLabel {
|
|
id: errorLabel
|
|
visible: Layout.maximumHeight > 0
|
|
wrapMode: Text.Wrap
|
|
color: theme.colors.errorText
|
|
|
|
Layout.maximumHeight: text ? implicitHeight : 0
|
|
Layout.fillWidth: true
|
|
|
|
Behavior on Layout.maximumHeight { HNumberAnimation {} }
|
|
}
|
|
}
|