diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-06-01 23:36:57 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-06-13 09:34:39 +0000 |
commit | 92fcd0a3fb2ee0d1ba242607c1aa5a29864d3650 (patch) | |
tree | e55ace5afc75cfaa17f2571fda8cfae2d8f4e9f8 /src/imports/controls/fusion | |
parent | 23a80af1b5d31621bf1d342706c9541dd5273b86 (diff) |
Add support for cascading sub-menus
This commit adds initial support for cascading sub-menus by allowing
one to nest declarative Menu declarations. A follow-up commit adds
support for adding, inserting, and removing menus programmatically.
[ChangeLog][Controls][Menu] Added support for cascading sub-menus.
Task-number: QTBUG-60351
Change-Id: I0eee4f74d92a97c09333fcc4348b019782448535
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/imports/controls/fusion')
-rw-r--r-- | src/imports/controls/fusion/Menu.qml | 1 | ||||
-rw-r--r-- | src/imports/controls/fusion/MenuItem.qml | 18 |
2 files changed, 17 insertions, 2 deletions
diff --git a/src/imports/controls/fusion/Menu.qml b/src/imports/controls/fusion/Menu.qml index 3fd4caa2..d7fceb92 100644 --- a/src/imports/controls/fusion/Menu.qml +++ b/src/imports/controls/fusion/Menu.qml @@ -51,6 +51,7 @@ T.Menu { margins: 0 padding: 1 + overlap: 2 delegate: MenuItem { } diff --git a/src/imports/controls/fusion/MenuItem.qml b/src/imports/controls/fusion/MenuItem.qml index c0127ed7..ca828c40 100644 --- a/src/imports/controls/fusion/MenuItem.qml +++ b/src/imports/controls/fusion/MenuItem.qml @@ -58,8 +58,10 @@ T.MenuItem { icon.height: 16 contentItem: IconLabel { - leftPadding: !control.mirrored ? control.indicator.width + control.spacing : 0 - rightPadding: control.mirrored ? control.indicator.width + control.spacing : 0 + readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0 + readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0 + leftPadding: !control.mirrored ? indicatorPadding : arrowPadding + rightPadding: control.mirrored ? indicatorPadding : arrowPadding spacing: control.spacing mirrored: control.mirrored @@ -72,6 +74,18 @@ T.MenuItem { color: control.down || control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text } + arrow: ColorImage { + x: control.mirrored ? control.padding : control.width - width - control.padding + y: control.topPadding + (control.availableHeight - height) / 2 + width: 20 + + visible: control.subMenu + rotation: control.mirrored ? 90 : -90 + color: control.down || control.hovered || control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/arrow.png" + fillMode: Image.Pad + } + indicator: CheckIndicator { x: control.mirrored ? control.width - width - control.rightPadding : control.leftPadding y: control.topPadding + (control.availableHeight - height) / 2 |