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 }