diff options
author | Richard Moe Gustavsen <richard.gustavsen@digia.com> | 2014-09-23 15:53:49 +0200 |
---|---|---|
committer | Richard Moe Gustavsen <richard.gustavsen@digia.com> | 2014-09-24 13:53:29 +0200 |
commit | 1a1a19f74e7f55388da043ae1e2e34e334d5f740 (patch) | |
tree | 6705740218c6ba15c61cf8ebd45a2ec4bf569c3c /src/controls/Private/EditMenu.qml | |
parent | 094528f9206d3f03220d0bc67951c7034e02dca6 (diff) | |
download | qtquickcontrols-1a1a19f74e7f55388da043ae1e2e34e334d5f740.tar.gz |
EditMenu: let menu property be a component to lazy load it
Since all input fields have a menu assigned to it by
default (which in most cases never will be shown), it should
be an optimization to await creating it until needed.
Change-Id: I5777bbdae42103981e9b2f5ddfdfd763acea07ae
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Diffstat (limited to 'src/controls/Private/EditMenu.qml')
-rw-r--r-- | src/controls/Private/EditMenu.qml | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/controls/Private/EditMenu.qml b/src/controls/Private/EditMenu.qml index c0faf9ff..f4d80bd5 100644 --- a/src/controls/Private/EditMenu.qml +++ b/src/controls/Private/EditMenu.qml @@ -47,7 +47,27 @@ Loader { property Item cursorHandle property Item selectionHandle property Flickable flickable - property Menu defaultMenu: item && item.defaultMenu ? item.defaultMenu : null + property Component defaultMenu: item && item.defaultMenu ? item.defaultMenu : null + property Menu menuInstance: null + + Connections { + target: control + onMenuChanged: { + if (menuInstance !== null) { + menuInstance.destroy() + menuInstance = null + } + } + } + + function getMenuInstance() + { + // Lazy load menu when first requested + if (!menuInstance && control.menu) { + menuInstance = control.menu.createObject(input); + } + return menuInstance; + } source: Qt.resolvedUrl("EditMenu_" + (Qt.platform.os === "ios" ? "ios" : "base") + ".qml") } |