Warning, /frameworks/qqc2-desktop-style/org.kde.desktop/MenuBarItem.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 
0005     SPDX-License-Identifier: LGPL-3.0-only OR GPL-2.0-or-later
0006 */
0007 
0008 
0009 import QtQuick
0010 import QtQuick.Layouts
0011 import QtQuick.Templates as T
0012 import org.kde.kirigami as Kirigami
0013 
0014 T.MenuBarItem {
0015     id: controlRoot
0016 
0017     implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
0018                             implicitContentWidth + leftPadding + rightPadding)
0019     implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
0020                              implicitContentHeight + topPadding + bottomPadding,
0021                              implicitIndicatorHeight + topPadding + bottomPadding)
0022 
0023     topPadding: Kirigami.Units.smallSpacing
0024     leftPadding: Kirigami.Units.largeSpacing
0025     rightPadding: Kirigami.Units.largeSpacing
0026     bottomPadding: Kirigami.Units.smallSpacing
0027     hoverEnabled: true
0028 
0029     Kirigami.MnemonicData.enabled: enabled && visible
0030     Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.MenuItem
0031     Kirigami.MnemonicData.label: text
0032 
0033     Shortcut {
0034         //in case of explicit & the button manages it by itself
0035         enabled: !(RegExp(/\&[^\&]/).test(controlRoot.text))
0036         sequence: controlRoot.Kirigami.MnemonicData.sequence
0037         onActivated: controlRoot.clicked();
0038     }
0039 
0040     contentItem: Label {
0041         text: controlRoot.Kirigami.MnemonicData.richTextLabel
0042         font: controlRoot.font
0043         color: controlRoot.hovered && !controlRoot.pressed ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor
0044         elide: Text.ElideRight
0045         visible: controlRoot.text
0046         horizontalAlignment: Text.AlignHCenter
0047         verticalAlignment: Text.AlignVCenter
0048     }
0049 
0050     background: Rectangle {
0051         implicitWidth: 40
0052         implicitHeight: Kirigami.Units.gridUnit + 2 * Kirigami.Units.smallSpacing
0053         color: Kirigami.Theme.highlightColor
0054         opacity: controlRoot.down || controlRoot.highlighted ? 0.7 : 0
0055 
0056         Behavior on opacity {
0057             NumberAnimation {
0058                 duration: Kirigami.Units.shortDuration
0059             }
0060         }
0061     }
0062 }