KCMUtils

ContextualHelpButton.qml
1/*
2 SPDX-FileCopyrightText: 2020 Felix Ernst <fe.a.ernst@gmail.com>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6
7import QtQuick 2.1
8import QtQuick.Layouts 1.1
9import QtQuick.Controls 2.7 as QQC2
10import QtQuick.Window 2.15
11import org.kde.kirigami 2.3 as Kirigami
12
13QQC2.Button {
14 id: root
15
16 icon.name: "help-contextual"
17 flat: true
18 property alias toolTipText: toolTip.text
19 property var toolTipVisible: false
20
21 onReleased: {
22 toolTipVisible ? toolTip.delay = Kirigami.Units.toolTipDelay : toolTip.delay = 0;
23 toolTipVisible = !toolTipVisible;
24 }
25 onActiveFocusChanged: {
26 toolTip.delay = Kirigami.Units.toolTipDelay;
27 toolTipVisible = false;
28 }
29 Layout.maximumHeight: parent.height
30 QQC2.ToolTip {
31 id: toolTip
32 implicitWidth: Math.min(21 * Kirigami.Units.gridUnit, root.Window.width) // Wikipedia says anything between 45 and 75 characters per line is acceptable. 21 * Kirigami.Units.gridUnit feels right.
33 visible: parent.hovered || parent.toolTipVisible
34 onVisibleChanged: {
35 if (!visible && parent.toolTipVisible) {
36 parent.toolTipVisible = false;
37 delay = Kirigami.Units.toolTipDelay;
38 }
39 }
40 timeout: -1
41 }
42 MouseArea {
43 anchors.fill: parent
44 hoverEnabled: true
45 cursorShape: Qt.WhatsThisCursor
46 acceptedButtons: Qt.NoButton
47 }
48 Accessible.name: i18ndc("kcmutils6", "@action:button", "Show Contextual Help")
49}
50
QString i18ndc(const char *domain, const char *context, const char *text, const TYPE &arg...)
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:17:56 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.