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

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