1/*
2    SPDX-FileCopyrightText: 2016 Marco Martin <mart@kde.org>
3
4    SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6
7import QtQuick 2.6
8import QtQuick.Layouts 1.2
9import QtQuick.Templates @QQC2_VERSION@ as T
10import org.kde.plasma.core 2.0 as PlasmaCore
11import org.kde.kirigami 2.5 as Kirigami
12import "private" as Private
13
14T.ToolButton {
15    id: control
16
17    implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
18                            implicitContentWidth + leftPadding + rightPadding)
19    implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
20                             implicitContentHeight + topPadding + bottomPadding)
21
22    leftPadding: background.leftMargin
23    topPadding: background.topMargin
24    rightPadding: background.rightMargin
25    bottomPadding: background.bottomMargin
26
27    spacing: PlasmaCore.Units.smallSpacing
28
29    hoverEnabled: !Kirigami.Settings.tabletMode
30
31    Kirigami.MnemonicData.enabled: control.enabled && control.visible
32    Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.SecondaryControl
33    Kirigami.MnemonicData.label: control.text
34
35    // KF6 TODO: investigate setting this by default
36    // focusPolicy: Qt.TabFocus
37
38    Shortcut {
39        //in case of explicit & the button manages it by itself
40        enabled: !(RegExp(/\&[^\&]/).test(control.text))
41        sequence: control.Kirigami.MnemonicData.sequence
42        onActivated: control.clicked()
43    }
44
45    flat: true
46
47    PlasmaCore.ColorScope.inherit: flat
48    PlasmaCore.ColorScope.colorGroup: flat && parent ? parent.PlasmaCore.ColorScope.colorGroup : PlasmaCore.Theme.ButtonColorGroup
49
50    contentItem: Private.ButtonContent {
51        labelText: control.Kirigami.MnemonicData.richTextLabel
52    }
53
54    background: Private.ButtonBackground {}
55}
56