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.Button {
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    Shortcut {
36        //in case of explicit & the button manages it by itself
37        enabled: !(RegExp(/\&[^\&]/).test(control.text))
38        sequence: control.Kirigami.MnemonicData.sequence
39        onActivated: control.clicked()
40    }
41
42    PlasmaCore.ColorScope.inherit: flat
43    PlasmaCore.ColorScope.colorGroup: flat && parent ? parent.PlasmaCore.ColorScope.colorGroup : PlasmaCore.Theme.ButtonColorGroup
44
45    contentItem: Private.ButtonContent {
46        labelText: control.Kirigami.MnemonicData.richTextLabel
47    }
48
49    background: Private.ButtonBackground {}
50}
51