Warning, /frameworks/qqc2-desktop-style/org.kde.desktop/DelayButton.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.DelayButton { 0015 id: controlRoot 0016 0017 implicitWidth: Math.max((text && display !== T.AbstractButton.IconOnly ? 0018 implicitBackgroundWidth : implicitHeight) + leftInset + rightInset, 0019 implicitContentWidth + leftPadding + rightPadding) 0020 implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, 0021 implicitContentHeight + topPadding + bottomPadding) 0022 0023 hoverEnabled: Qt.styleHints.useHoverEffects 0024 0025 Kirigami.MnemonicData.enabled: enabled && visible 0026 Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.ActionElement 0027 Kirigami.MnemonicData.label: display !== T.AbstractButton.IconOnly ? text : "" 0028 Shortcut { 0029 //in case of explicit & the button manages it by itself 0030 enabled: !(RegExp(/\&[^\&]/).test(controlRoot.text)) 0031 sequence: controlRoot.Kirigami.MnemonicData.sequence 0032 onActivated: controlRoot.clicked() 0033 } 0034 0035 Kirigami.Theme.colorSet: Kirigami.Theme.Button 0036 Kirigami.Theme.inherit: false 0037 0038 transition: Transition { 0039 NumberAnimation { 0040 duration: controlRoot.delay * (controlRoot.pressed ? 1.0 - controlRoot.progress : 0.3 * controlRoot.progress) 0041 } 0042 } 0043 0044 background: StylePrivate.StyleItem { 0045 control: controlRoot 0046 elementType: "delaybutton" 0047 sunken: controlRoot.down 0048 on: controlRoot.checkable && controlRoot.checked 0049 hover: controlRoot.hovered 0050 text: controlRoot.Kirigami.MnemonicData.mnemonicLabel 0051 hasFocus: controlRoot.visualFocus || controlRoot.pressed 0052 flat: false 0053 minimum: 0 0054 maximum: 1000 0055 value: controlRoot.progress * maximum 0056 0057 // note: keep in sync with ToolButton 0058 readonly property int toolButtonStyle: { 0059 switch (controlRoot.display) { 0060 case T.AbstractButton.IconOnly: return Qt.ToolButtonIconOnly; 0061 case T.AbstractButton.TextOnly: return Qt.ToolButtonTextOnly; 0062 case T.AbstractButton.TextBesideIcon: 0063 case T.AbstractButton.TextUnderIcon: 0064 // TODO KF6: check if this condition is still needed 0065 if (controlRoot.icon.name !== "" || controlRoot.icon.source.toString() !== "") { 0066 // has icon 0067 switch (controlRoot.display) { 0068 case T.AbstractButton.TextBesideIcon: return Qt.ToolButtonTextBesideIcon; 0069 case T.AbstractButton.TextUnderIcon: return Qt.ToolButtonTextUnderIcon; 0070 } 0071 } else { 0072 return Qt.ToolButtonTextOnly; 0073 } 0074 default: return Qt.ToolButtonFollowStyle; 0075 } 0076 } 0077 0078 properties: { 0079 "icon": controlRoot.icon.name !== "" ? controlRoot.icon.name : controlRoot.icon.source, 0080 "iconColor": Qt.colorEqual(controlRoot.icon.color, "transparent") ? Kirigami.Theme.textColor : controlRoot.icon.color, 0081 "iconWidth": controlRoot.icon.width, 0082 "iconHeight": controlRoot.icon.height, 0083 0084 "toolButtonStyle": toolButtonStyle, 0085 } 0086 } 0087 }