aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls/Menu.qml
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2016-01-22 12:10:12 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2016-01-22 14:09:23 +0000
commit7427e2808324388678eefda45b3e83c675979290 (patch)
tree2fe0308a0c84d8fd55ff1a3664565b2f5536dd6b /src/imports/controls/Menu.qml
parent482ecb0fdc011687eec3df5803653be88f14f539 (diff)
Refactor Popup
Added relevant properties to make it almost like a Control: x, y, width, height, padding, background... This change makes popup use an internal item where the style/user-supplied contentItem and background are re-parented. This way we can provide a default style (background) for Popup. Change-Id: I3e7933562464c5c852e4ba4bc37d9ac25691c714 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'src/imports/controls/Menu.qml')
-rw-r--r--src/imports/controls/Menu.qml25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/imports/controls/Menu.qml b/src/imports/controls/Menu.qml
index f4a4243e..482b68a3 100644
--- a/src/imports/controls/Menu.qml
+++ b/src/imports/controls/Menu.qml
@@ -41,10 +41,14 @@ import Qt.labs.templates 1.0 as T
T.Menu {
id: control
+ width: Math.max(background ? background.implicitWidth : 0,
+ contentItem ? contentItem.implicitWidth + leftPadding + rightPadding : 0)
+ height: Math.min(background ? background.implicitHeight : 0,
+ contentItem ? contentItem.implicitHeight + topPadding + bottomPadding : 0)
+
//! [contentItem]
contentItem: ListView {
- implicitWidth: 200
- implicitHeight: Math.min(contentHeight, 200)
+ implicitHeight: contentHeight
model: control.contentModel
// TODO: improve this?
interactive: ApplicationWindow.window ? contentHeight > ApplicationWindow.window.height : false
@@ -53,14 +57,15 @@ T.Menu {
currentIndex: -1
ScrollIndicator.vertical: ScrollIndicator {}
-
- Rectangle {
- width: parent.width
- height: parent.height
- color: "#ffffff"
- border.color: "#353637"
- z: -1
- }
}
//! [contentItem]
+
+ //! [background]
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 200
+ color: "#ffffff"
+ border.color: "#353637"
+ }
+ //! [background]
}