2019-12-19 22:46:16 +11:00
|
|
|
// SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
|
2019-07-13 08:02:14 +10:00
|
|
|
import QtQuick 2.12
|
2019-07-13 19:39:01 +10:00
|
|
|
import QtQuick.Controls 2.12
|
2019-09-12 06:47:13 +10:00
|
|
|
import QtQuick.Layouts 1.12
|
2019-07-10 12:51:52 +10:00
|
|
|
|
|
|
|
ToolTip {
|
2019-07-10 13:42:03 +10:00
|
|
|
id: toolTip
|
2020-07-12 14:25:57 +10:00
|
|
|
|
|
|
|
property bool instant: false
|
|
|
|
|
|
|
|
property alias label: label
|
|
|
|
property alias backgroundColor: background.color
|
|
|
|
|
|
|
|
readonly property bool hideNow: ! window.hovered
|
|
|
|
|
|
|
|
|
2020-07-27 10:56:42 +10:00
|
|
|
function instantShow(timeout=-1) {
|
2020-07-12 14:25:57 +10:00
|
|
|
if (visible) return
|
|
|
|
instant = true
|
2020-07-27 10:56:42 +10:00
|
|
|
timeout === -1 ? open() : show(text, timeout)
|
2020-07-12 14:25:57 +10:00
|
|
|
instant = false
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2020-03-14 02:35:05 +11:00
|
|
|
delay: instant ? 0 : theme.controls.toolTip.delay
|
2019-08-22 23:27:26 +10:00
|
|
|
padding: background.border.width
|
|
|
|
|
2019-08-28 12:46:31 +10:00
|
|
|
background: Rectangle {
|
2019-08-22 23:27:26 +10:00
|
|
|
id: background
|
|
|
|
color: theme.controls.toolTip.background
|
|
|
|
border.color: theme.controls.toolTip.border
|
|
|
|
border.width: theme.controls.toolTip.borderWidth
|
|
|
|
}
|
|
|
|
|
2019-09-12 06:47:13 +10:00
|
|
|
contentItem: HRowLayout {
|
|
|
|
HLabel {
|
|
|
|
id: label
|
|
|
|
color: theme.controls.toolTip.text
|
|
|
|
text: toolTip.text
|
2020-07-17 15:45:02 +10:00
|
|
|
wrapMode: HLabel.Wrap
|
2019-09-12 06:47:13 +10:00
|
|
|
|
|
|
|
leftPadding: theme.spacing / 1.5
|
|
|
|
rightPadding: leftPadding
|
|
|
|
topPadding: theme.spacing / 2
|
|
|
|
bottomPadding: topPadding
|
|
|
|
|
|
|
|
Layout.maximumWidth: Math.min(
|
2019-09-18 06:30:04 +10:00
|
|
|
window.width / 1.25, theme.fontSize.normal * 0.5 * 75,
|
2019-09-12 06:47:13 +10:00
|
|
|
)
|
|
|
|
}
|
2019-08-22 23:27:26 +10:00
|
|
|
}
|
2019-07-10 12:51:52 +10:00
|
|
|
|
|
|
|
enter: Transition {
|
|
|
|
HNumberAnimation { property: "opacity"; from: 0.0; to: 1.0 }
|
|
|
|
}
|
|
|
|
exit: Transition {
|
2019-09-18 06:30:04 +10:00
|
|
|
HNumberAnimation { property: "opacity"; to: 0.0 }
|
2019-07-10 12:51:52 +10:00
|
|
|
}
|
2019-07-10 13:49:59 +10:00
|
|
|
|
2020-03-14 02:35:05 +11:00
|
|
|
onHideNowChanged: if (visible && hideNow) toolTip.hide()
|
|
|
|
|
2019-07-13 08:02:14 +10:00
|
|
|
TapHandler {
|
2019-12-06 22:07:40 +11:00
|
|
|
onTapped: toolTip.hide()
|
2019-07-10 13:49:59 +10:00
|
|
|
}
|
2019-07-25 05:58:43 +10:00
|
|
|
|
|
|
|
HoverHandler {
|
2019-08-22 23:27:26 +10:00
|
|
|
onHoveredChanged: if (! hovered) toolTip.hide()
|
2019-07-25 05:58:43 +10:00
|
|
|
}
|
2019-07-10 12:51:52 +10:00
|
|
|
}
|