linphone-desktop/linphone-app/ui/modules/Common/Tooltip/TooltipArea.qml
Julien Wadel 682e5dc913 Primary color on links in chat.
Allow smallbuttons to use emojis.
Insert text in text area in chats.
Ensure to send plain text message.
Use custom text font for text edit.
Emoji picker and display it aside of files preview with a splitter.
Fix file preview layout in replies.
Change double click to simple click on avatar for copying address into the smartsearchbar.
Add an option to change emojis font.
Update chat actions colors.
2023-04-07 17:08:57 +02:00

83 lines
1.7 KiB
QML

import QtQuick 2.7
import Common 1.0
import Common.Styles 1.0
// =============================================================================
MouseArea {
id: tooltipArea
property alias text: tooltip.text
property int delay: TooltipStyle.delay
property bool force: false
property bool hide: false
property var tooltipParent: parent
property int maxWidth : window? window.width : tooltipParent.width
property bool _visible: false
property int hoveringCursor : Qt.PointingHandCursor
property bool isClickable : false
function show(){
if(isClickable){
if(tooltip.delay>0) {
tooltip.oldDelay = tooltip.delay
tooltip.delay = 0
}
tooltip.show(text, -1);
}
}
anchors.fill:parent
hoverEnabled: true
scrollGestureEnabled: true
onContainsMouseChanged: _visible = !hide && containsMouse
cursorShape: containsMouse ? hoveringCursor : Qt.ArrowCursor
onPressed: {
mouse.accepted = isClickable
}
onWheel: {
_visible = false
wheel.accepted = false
}
onClicked:{
show()
mouse.accepted = false
}
Tooltip {
id: tooltip
property int oldDelay : 0
delay: tooltipArea.delay
parent: tooltipParent
visible: _visible || force
width: Math.min(tooltip.implicitWidth, Math.max(tooltipArea.maxWidth, TooltipStyle.minWidth))
//tooltipParent.width>TooltipStyle.minWidth?tooltipParent.width:TooltipStyle.minWidth
timeout: -1
// Workaround to always display tooltip.
onVisibleChanged: {
if (!visible && force) {
tooltip.visible = true
}
}
MouseArea{
anchors.fill:parent
visible: tooltipArea.isClickable
onClicked : {
tooltip.hide()
tooltip.delay = tooltip.oldDelay
mouse.accepted = false
}
}
}
}