Warning, /frameworks/qqc2-desktop-style/org.kde.desktop/Button.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2017 Marco Martin <mart@kde.org>
0003     SPDX-FileCopyrightText: 2017 The Qt Company Ltd.
0004     SPDX-FileCopyrightText: 2023 ivan tkachenko <me@ratijas.tk>
0005 
0006     SPDX-License-Identifier: LGPL-3.0-only OR GPL-2.0-or-later
0007 */
0008 
0009 import QtQuick 2.6
0010 import QtQuick.Templates 2.15 as T
0011 import org.kde.qqc2desktopstyle.private 1.0 as StylePrivate
0012 import org.kde.kirigami 2.4 as Kirigami
0013 
0014 T.Button {
0015     id: controlRoot
0016 
0017     palette: Kirigami.Theme.inherit ? Kirigami.Theme.palette : undefined
0018     Kirigami.Theme.colorSet: Kirigami.Theme.Button
0019     Kirigami.Theme.inherit: false
0020 
0021     implicitWidth: Math.max((text && display !== T.AbstractButton.IconOnly ?
0022         implicitBackgroundWidth : implicitHeight) + leftInset + rightInset,
0023         implicitContentWidth + leftPadding + rightPadding)
0024     implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
0025                              implicitContentHeight + topPadding + bottomPadding)
0026 
0027     hoverEnabled: Qt.styleHints.useHoverEffects
0028 
0029     Kirigami.MnemonicData.enabled: controlRoot.enabled && controlRoot.visible
0030     Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.ActionElement
0031     Kirigami.MnemonicData.label: controlRoot.display !== T.AbstractButton.IconOnly ? controlRoot.text : ""
0032     Shortcut {
0033         //in case of explicit & the button manages it by itself
0034         enabled: !(RegExp(/\&[^\&]/).test(controlRoot.text))
0035         sequence: controlRoot.Kirigami.MnemonicData.sequence
0036         onActivated: controlRoot.clicked()
0037     }
0038     background: StylePrivate.StyleItem {
0039         control: controlRoot
0040         elementType: "button"
0041         sunken: controlRoot.down
0042         on: controlRoot.checkable && controlRoot.checked
0043         flat: controlRoot.flat
0044         hover: controlRoot.hovered
0045         text: controlRoot.Kirigami.MnemonicData.mnemonicLabel
0046         hasFocus: controlRoot.activeFocus || controlRoot.highlighted
0047         activeControl: controlRoot.Accessible.defaultButton ? "default" : ""
0048         properties: {
0049             "icon": controlRoot.display !== T.AbstractButton.TextOnly
0050                 ? (controlRoot.icon.name !== "" ? controlRoot.icon.name : controlRoot.icon.source) : null,
0051             "iconColor": Qt.colorEqual(controlRoot.icon.color, "transparent") ? Kirigami.Theme.textColor : controlRoot.icon.color,
0052             "iconWidth": controlRoot.icon.width,
0053             "iconHeight": controlRoot.icon.height,
0054 
0055             "menu": controlRoot.Accessible.role === Accessible.ButtonMenu
0056         }
0057     }
0058 }