aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quick/keyinteraction
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2020-03-10 15:09:37 +0100
committerAlexandru Croitor <alexandru.croitor@qt.io>2020-03-12 15:03:03 +0100
commit26c5243491f495194f04b449128dae36118e28da (patch)
tree7fb14678a6fc9e44a10c9224d005e2cbdc6bcb63 /examples/quick/keyinteraction
parent1c7d264e3b2e9a2f0021786ea6967185f8282af0 (diff)
parentc24c5baeda4101b0058689adf9200b77a722c3a2 (diff)
Merge remote-tracking branch 'origin/dev' into wip/cmake
Conflicts: dependencies.yaml src/qml/qml/qqmlengine.cpp Change-Id: I6a73fd1064286f4a2232de85c2ce7f80452d4641
Diffstat (limited to 'examples/quick/keyinteraction')
-rw-r--r--examples/quick/keyinteraction/focus/Core/ContextMenu.qml3
-rw-r--r--examples/quick/keyinteraction/focus/Core/GridMenu.qml21
-rw-r--r--examples/quick/keyinteraction/focus/Core/ListMenu.qml20
-rw-r--r--examples/quick/keyinteraction/focus/Core/ListViewDelegate.qml6
-rw-r--r--examples/quick/keyinteraction/focus/Core/TabMenu.qml11
-rw-r--r--examples/quick/keyinteraction/focus/focus.qml34
6 files changed, 67 insertions, 28 deletions
diff --git a/examples/quick/keyinteraction/focus/Core/ContextMenu.qml b/examples/quick/keyinteraction/focus/Core/ContextMenu.qml
index c5430aa650..31b5e1b83d 100644
--- a/examples/quick/keyinteraction/focus/Core/ContextMenu.qml
+++ b/examples/quick/keyinteraction/focus/Core/ContextMenu.qml
@@ -52,6 +52,7 @@ import QtQuick 2.1
FocusScope {
id: container
+ required property Item keyRightTarget
property bool open: false
@@ -62,7 +63,7 @@ FocusScope {
anchors.fill: parent
color: "#D1DBBD"
focus: true
- Keys.onRightPressed: mainView.focus = true
+ Keys.onRightPressed: container.keyRightTarget.focus = true
Text {
anchors { top: parent.top; horizontalCenter: parent.horizontalCenter; margins: 30 }
diff --git a/examples/quick/keyinteraction/focus/Core/GridMenu.qml b/examples/quick/keyinteraction/focus/Core/GridMenu.qml
index 3f62adc792..78d6654957 100644
--- a/examples/quick/keyinteraction/focus/Core/GridMenu.qml
+++ b/examples/quick/keyinteraction/focus/Core/GridMenu.qml
@@ -51,12 +51,11 @@
import QtQuick 2.1
FocusScope {
+ id: menu
property alias interactive: gridView.interactive
-
- onActiveFocusChanged: {
- if (activeFocus)
- mainView.state = "showGridViews"
- }
+ required property Item keyUpTarget
+ required property Item keyDownTarget
+ required property Item keyLeftTarget
Rectangle {
anchors.fill: parent
@@ -73,13 +72,15 @@ FocusScope {
focus: true
model: 12
- KeyNavigation.up: tabMenu
- KeyNavigation.down: listMenu
- KeyNavigation.left: contextMenu
+ KeyNavigation.up: menu.keyUpTarget
+ KeyNavigation.down: menu.keyDownTarget
+ KeyNavigation.left: menu.keyLeftTarget
delegate: Item {
id: container
- width: GridView.view.cellWidth; height: GridView.view.cellHeight
+ width: GridView.view.cellWidth
+ height: GridView.view.cellHeight
+ required property int index
Rectangle {
id: content
@@ -97,7 +98,7 @@ FocusScope {
hoverEnabled: true
onClicked: {
- container.GridView.view.currentIndex = index
+ container.GridView.view.currentIndex = container.index
container.forceActiveFocus()
}
}
diff --git a/examples/quick/keyinteraction/focus/Core/ListMenu.qml b/examples/quick/keyinteraction/focus/Core/ListMenu.qml
index d8e9daba78..694ae3cac6 100644
--- a/examples/quick/keyinteraction/focus/Core/ListMenu.qml
+++ b/examples/quick/keyinteraction/focus/Core/ListMenu.qml
@@ -48,21 +48,22 @@
**
****************************************************************************/
+import QtQml 2.1
import QtQuick 2.1
FocusScope {
+ id: menu
clip: true
-
- onActiveFocusChanged: {
- if (activeFocus)
- mainView.state = "showListViews"
- }
+ required property Item keyUpTarget
+ required property Item keyLeftTarget
ListView {
id: list1
y: activeFocus ? 10 : 40; width: parent.width / 3; height: parent.height - 20
focus: true
- KeyNavigation.up: gridMenu; KeyNavigation.left: contextMenu; KeyNavigation.right: list2
+ KeyNavigation.up: menu.keyUpTarget
+ KeyNavigation.left: menu.keyLeftTarget
+ KeyNavigation.right: list2
model: 10; cacheBuffer: 200
delegate: ListViewDelegate {}
@@ -74,7 +75,9 @@ FocusScope {
ListView {
id: list2
y: activeFocus ? 10 : 40; x: parseInt(parent.width / 3); width: parent.width / 3; height: parent.height - 20
- KeyNavigation.up: gridMenu; KeyNavigation.left: list1; KeyNavigation.right: list3
+ KeyNavigation.up: menu.keyUpTarget
+ KeyNavigation.left: list1
+ KeyNavigation.right: list3
model: 10; cacheBuffer: 200
delegate: ListViewDelegate {}
@@ -86,7 +89,8 @@ FocusScope {
ListView {
id: list3
y: activeFocus ? 10 : 40; x: parseInt(2 * parent.width / 3); width: parent.width / 3; height: parent.height - 20
- KeyNavigation.up: gridMenu; KeyNavigation.left: list2
+ KeyNavigation.up: menu.keyUpTarget
+ KeyNavigation.left: list2
model: 10; cacheBuffer: 200
delegate: ListViewDelegate {}
diff --git a/examples/quick/keyinteraction/focus/Core/ListViewDelegate.qml b/examples/quick/keyinteraction/focus/Core/ListViewDelegate.qml
index b1dde9ddc5..5a2957eab0 100644
--- a/examples/quick/keyinteraction/focus/Core/ListViewDelegate.qml
+++ b/examples/quick/keyinteraction/focus/Core/ListViewDelegate.qml
@@ -52,6 +52,8 @@ import QtQuick 2.1
Item {
id: container
+ required property int index
+
width: ListView.view.width; height: 60; anchors.leftMargin: 10; anchors.rightMargin: 10
Rectangle {
@@ -67,7 +69,7 @@ Item {
Text {
id: label
anchors.centerIn: content
- text: "List element " + (index + 1)
+ text: "List element " + (container.index + 1)
color: "#193441"
font.pixelSize: 14
}
@@ -78,7 +80,7 @@ Item {
hoverEnabled: true
onClicked: {
- container.ListView.view.currentIndex = index
+ container.ListView.view.currentIndex = container.index
container.forceActiveFocus()
}
}
diff --git a/examples/quick/keyinteraction/focus/Core/TabMenu.qml b/examples/quick/keyinteraction/focus/Core/TabMenu.qml
index a40e070b2c..11b3d005c3 100644
--- a/examples/quick/keyinteraction/focus/Core/TabMenu.qml
+++ b/examples/quick/keyinteraction/focus/Core/TabMenu.qml
@@ -51,10 +51,9 @@
import QtQuick 2.1
FocusScope {
- onActiveFocusChanged: {
- if (activeFocus)
- mainView.state = "showTabViews"
- }
+ id: menu
+ required property Item keyUpTarget
+ required property Item keyDownTarget
Rectangle {
anchors.fill: parent
@@ -76,8 +75,8 @@ FocusScope {
activeFocusOnTab: true
focus: true
- KeyNavigation.up: listMenu
- KeyNavigation.down: gridMenu
+ KeyNavigation.up: menu.keyUpTarget
+ KeyNavigation.down: menu.keyDownTarget
Rectangle {
id: content
diff --git a/examples/quick/keyinteraction/focus/focus.qml b/examples/quick/keyinteraction/focus/focus.qml
index e07df57697..9db9ab48bc 100644
--- a/examples/quick/keyinteraction/focus/focus.qml
+++ b/examples/quick/keyinteraction/focus/focus.qml
@@ -48,6 +48,7 @@
**
****************************************************************************/
+import QtQml 2.1
import QtQuick 2.1
import "Core"
@@ -67,20 +68,45 @@ Rectangle {
id: tabMenu
y: 160; width: parent.width; height: 160
+ keyUpTarget: listMenu
+ keyDownTarget: gridMenu
+
focus: true
activeFocusOnTab: true
+
+ onActiveFocusChanged: {
+ if (activeFocus)
+ mainView.state = "showTabViews"
+ }
}
GridMenu {
id: gridMenu
y: 320; width: parent.width; height: 320
activeFocusOnTab: true
+
+ keyUpTarget: tabMenu
+ keyDownTarget: listMenu
+ keyLeftTarget: contextMenu
+
+ onActiveFocusChanged: {
+ if (activeFocus)
+ mainView.state = "showGridViews"
+ }
}
ListMenu {
id: listMenu
y: 640; width: parent.width; height: 320
activeFocusOnTab: true
+
+ keyUpTarget: gridMenu
+ keyLeftTarget: contextMenu
+
+ onActiveFocusChanged: {
+ if (activeFocus)
+ mainView.state = "showListViews"
+ }
}
Rectangle {
@@ -129,7 +155,13 @@ Rectangle {
}
}
- ContextMenu { id: contextMenu; x: -265; width: 260; height: parent.height }
+ ContextMenu {
+ keyRightTarget: mainView
+ id: contextMenu
+ x: -265
+ width: 260
+ height: parent.height
+ }
states: State {
name: "contextMenuOpen"