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
0010 import QtQuick.Templates as T
0011 import org.kde.kirigami as Kirigami
0012 import org.kde.qqc2desktopstyle.private as StylePrivate
0013 
0014 T.Button {
0015     id: controlRoot
0016 
0017     Kirigami.Theme.colorSet: Kirigami.Theme.Button
0018     Kirigami.Theme.inherit: false
0019 
0020     implicitWidth: Math.max((text && display !== T.AbstractButton.IconOnly ?
0021         implicitBackgroundWidth : implicitHeight) + leftInset + rightInset,
0022         implicitContentWidth + leftPadding + rightPadding)
0023     implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
0024                              implicitContentHeight + topPadding + bottomPadding)
0025 
0026     hoverEnabled: Qt.styleHints.useHoverEffects
0027 
0028     Kirigami.MnemonicData.enabled: enabled && visible
0029     Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.ActionElement
0030     Kirigami.MnemonicData.label: display !== T.AbstractButton.IconOnly ? text : ""
0031     Shortcut {
0032         //in case of explicit & the button manages it by itself
0033         enabled: !(RegExp(/\&[^\&]/).test(controlRoot.text))
0034         sequence: controlRoot.Kirigami.MnemonicData.sequence
0035         onActivated: controlRoot.clicked()
0036     }
0037     background: StylePrivate.StyleItem {
0038         control: controlRoot
0039         elementType: "button"
0040         sunken: controlRoot.down
0041         on: controlRoot.checkable && controlRoot.checked
0042         flat: controlRoot.flat
0043         hover: controlRoot.hovered
0044         text: controlRoot.Kirigami.MnemonicData.mnemonicLabel
0045         hasFocus: controlRoot.activeFocus || controlRoot.highlighted
0046         activeControl: controlRoot.Accessible.defaultButton ? "default" : ""
0047         properties: {
0048             "icon": controlRoot.display !== T.AbstractButton.TextOnly
0049                 ? (controlRoot.icon.name !== "" ? controlRoot.icon.name : controlRoot.icon.source) : null,
0050             "iconColor": Qt.colorEqual(controlRoot.icon.color, "transparent") ? Kirigami.Theme.textColor : controlRoot.icon.color,
0051             "iconWidth": controlRoot.icon.width,
0052             "iconHeight": controlRoot.icon.height,
0053 
0054             "menu": controlRoot.Accessible.role === Accessible.ButtonMenu
0055         }
0056     }
0057 }