Warning, /plasma/qqc2-breeze-style/style/qtquickcontrols/Button.qml is written in an unsupported language. File is not indexed.

0001 /* SPDX-FileCopyrightText: 2020 Noah Davis <noahadvs@gmail.com>
0002  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0003  */
0004 
0005 import QtQuick 2.15
0006 import QtQuick.Templates 2.15 as T
0007 import org.kde.kirigami 2.19 as Kirigami
0008 
0009 import "impl" as Impl
0010 
0011 T.Button {
0012     id: control
0013 
0014     implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
0015                             implicitContentWidth + leftPadding + rightPadding,
0016                             implicitIndicatorWidth + leftPadding + rightPadding)
0017     implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
0018                              implicitContentHeight + topPadding + bottomPadding,
0019                              implicitIndicatorHeight + topPadding + bottomPadding)
0020 
0021     flat: false
0022 
0023     palette: Kirigami.Theme.palette
0024 
0025     hoverEnabled: Qt.styleHints.useHoverEffects
0026 
0027     Kirigami.Theme.colorSet: /*control.highlighted ? Kirigami.Theme.Selection :*/ Kirigami.Theme.Button
0028     Kirigami.Theme.inherit: false//control.flat && !control.down && !control.checked
0029     // Absolutely terrible HACK:
0030     // For some reason, ActionToolBar overrides the colorSet and inherit attached properties
0031     Component.onCompleted: {
0032         Kirigami.Theme.colorSet = Kirigami.Theme.Button/*Qt.binding(() => control.highlighted ? Kirigami.Theme.Selection : Kirigami.Theme.Button)*/
0033         Kirigami.Theme.inherit = false//Qt.binding(() => control.flat && !(control.down || control.checked))
0034     }
0035 
0036     padding: Kirigami.Units.mediumSpacing
0037     leftPadding: {
0038         if ((!contentItem.hasIcon && contentItem.textBesideIcon) // False if contentItem has been replaced
0039             || display == T.AbstractButton.TextOnly
0040             || display == T.AbstractButton.TextUnderIcon) {
0041             return Impl.Units.mediumHorizontalPadding
0042         } else {
0043             return control.horizontalPadding
0044         }
0045     }
0046     rightPadding: {
0047         if (contentItem.hasLabel && display != T.AbstractButton.IconOnly) { // False if contentItem has been replaced
0048             return Impl.Units.mediumHorizontalPadding
0049         } else {
0050             return control.horizontalPadding
0051         }
0052     }
0053 
0054     spacing: Kirigami.Units.mediumSpacing
0055 
0056     icon.width: Kirigami.Units.iconSizes.sizeForLabels
0057     icon.height: Kirigami.Units.iconSizes.sizeForLabels
0058 
0059     Kirigami.MnemonicData.enabled: control.enabled && control.visible
0060     Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.ActionElement
0061     Kirigami.MnemonicData.label: control.display !== T.Button.IconOnly ? control.text : ""
0062     Shortcut {
0063         //in case of explicit & the button manages it by itself
0064         enabled: !(RegExp(/\&[^\&]/).test(control.text))
0065         sequence: control.Kirigami.MnemonicData.sequence
0066         onActivated: control.clicked()
0067     }
0068 
0069     contentItem: Impl.IconLabelContent {
0070         control: control
0071         text: control.Kirigami.MnemonicData.richTextLabel
0072     }
0073 
0074     background: Impl.ButtonBackground {
0075         control: control
0076     }
0077 }