diff --git a/tests/auto/controls/data/tst_button.qml b/tests/auto/controls/data/tst_button.qml index 2ac5cea2c9c44b1266ee3f58e6a029e8cfce180a..f949ec6ea335fdddc83a4a6fb13275c1db2dc641 100644 --- a/tests/auto/controls/data/tst_button.qml +++ b/tests/auto/controls/data/tst_button.qml @@ -120,5 +120,78 @@ TestCase { verify(control.activeFocus) control.destroy() } + + function test_activeFocusOnTab() { + var test_control = 'import QtQuick 2.1; \ + import QtQuick.Controls 1.0; \ + Item { \ + width: 200; \ + height: 200; \ + property alias control1: _control1; \ + property alias control2: _control2; \ + property alias control3: _control3; \ + Button { \ + y: 20; \ + id: _control1; \ + activeFocusOnTab: true; \ + text: "control1" \ + } \ + Button { \ + y: 70; \ + id: _control2; \ + activeFocusOnTab: false; \ + text: "control2" \ + } \ + Button { \ + y: 120; \ + id: _control3; \ + activeFocusOnTab: true; \ + text: "control3" \ + } \ + } ' + + var control = Qt.createQmlObject(test_control, container, '') + + control.control1.forceActiveFocus() + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + + control.control2.activeFocusOnTab = true + control.control3.activeFocusOnTab = false + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.destroy() + } } } diff --git a/tests/auto/controls/data/tst_checkbox.qml b/tests/auto/controls/data/tst_checkbox.qml index 1c9162a8852d46812bdcf4cf9c36913846b86a83..1c74e34d81147225b076db52f15ea45391227d24 100644 --- a/tests/auto/controls/data/tst_checkbox.qml +++ b/tests/auto/controls/data/tst_checkbox.qml @@ -233,5 +233,78 @@ Item { mouseClick(checkBox, checkBox.x + 1, checkBox.y + 1) verify(checkBox.activeFocus) } + + function test_activeFocusOnTab() { + checkBox.destroy() + wait(0) //QTBUG-30523 so processEvents is called + var test_control = 'import QtQuick 2.1; \ + import QtQuick.Controls 1.0; \ + Item { \ + width: 200; \ + height: 200; \ + property alias control1: _control1; \ + property alias control2: _control2; \ + property alias control3: _control3; \ + CheckBox { \ + y: 20; \ + id: _control1; \ + activeFocusOnTab: true; \ + text: "control1" \ + } \ + CheckBox { \ + y: 70; \ + id: _control2; \ + activeFocusOnTab: false; \ + text: "control2" \ + } \ + CheckBox { \ + y: 120; \ + id: _control3; \ + activeFocusOnTab: true; \ + text: "control3" \ + } \ + } ' + + var control = Qt.createQmlObject(test_control, container, '') + control.control1.forceActiveFocus() + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.control2.activeFocusOnTab = true + control.control3.activeFocusOnTab = false + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.destroy() + } } } diff --git a/tests/auto/controls/data/tst_combobox.qml b/tests/auto/controls/data/tst_combobox.qml index 7609c51d79a5e60a4803f7e0f6eece91c023ca41..d6b5f540f271d639fe21b62e4d99dedd05681c1d 100644 --- a/tests/auto/controls/data/tst_combobox.qml +++ b/tests/auto/controls/data/tst_combobox.qml @@ -41,6 +41,11 @@ import QtQuick 2.1 import QtTest 1.0 +Item { + id: container + width: 400 + height: 400 + TestCase { id: testCase name: "Tests_ComboBox" @@ -118,4 +123,74 @@ TestCase { compare(comboBox.currentText, "Yellow") comboBox.destroy() } + + function test_activeFocusOnTab() { + var test_control = 'import QtQuick 2.1; \ + import QtQuick.Controls 1.0; \ + Item { \ + width: 200; \ + height: 200; \ + property alias control1: _control1; \ + property alias control2: _control2; \ + property alias control3: _control3; \ + ComboBox { \ + y: 20; \ + id: _control1; \ + activeFocusOnTab: true; \ + } \ + ComboBox { \ + y: 70; \ + id: _control2; \ + activeFocusOnTab: false; \ + } \ + ComboBox { \ + y: 120; \ + id: _control3; \ + activeFocusOnTab: true; \ + } \ + } ' + + var control = Qt.createQmlObject(test_control, container, '') + control.control1.forceActiveFocus() + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + + control.control2.activeFocusOnTab = true + control.control3.activeFocusOnTab = false + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.destroy() + } +} } diff --git a/tests/auto/controls/data/tst_groupbox.qml b/tests/auto/controls/data/tst_groupbox.qml index 81a8580e80b6245bcf43605ede367dee45ccacf7..12784b48e393ea2276acabcdde636f67cae4a897 100644 --- a/tests/auto/controls/data/tst_groupbox.qml +++ b/tests/auto/controls/data/tst_groupbox.qml @@ -42,6 +42,11 @@ import QtQuick 2.1 import QtTest 1.0 import QtQuick.Controls 1.0 +Item { + id: container + width: 400 + height: 400 + TestCase { id: testCase name: "Tests_GroupBox" @@ -106,4 +111,77 @@ TestCase { compare(groupBox.child1.enabled, true) compare(groupBox.child2.enabled, true) } + + function test_activeFocusOnTab() { + var test_control = 'import QtQuick 2.1; \ + import QtQuick.Controls 1.0; \ + Item { \ + width: 200; \ + height: 200; \ + property alias control1: _control1; \ + property alias control2: _control2; \ + property alias control3: _control3; \ + GroupBox { \ + y: 20; \ + id: _control1; \ + activeFocusOnTab: true; \ + title: "control1" \ + } \ + GroupBox { \ + y: 70; \ + id: _control2; \ + activeFocusOnTab: false; \ + title: "control2" \ + } \ + GroupBox { \ + y: 120; \ + id: _control3; \ + activeFocusOnTab: true; \ + title: "control3" \ + } \ + } ' + + var control = Qt.createQmlObject(test_control, container, '') + control.control1.forceActiveFocus() + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + + control.control2.activeFocusOnTab = true + control.control3.activeFocusOnTab = false + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.destroy() + } +} } diff --git a/tests/auto/controls/data/tst_label.qml b/tests/auto/controls/data/tst_label.qml index c904d8bed11092ab77a646505f944edfe59fb915..a507869137468a9c53ff6db4cbda3b88e48bab53 100644 --- a/tests/auto/controls/data/tst_label.qml +++ b/tests/auto/controls/data/tst_label.qml @@ -41,6 +41,11 @@ import QtQuick 2.1 import QtTest 1.0 +Item { + id: container + width: 400 + height: 400 + TestCase { id: testCase name: "Tests_Label" @@ -52,4 +57,74 @@ TestCase { var label = Qt.createQmlObject('import QtQuick.Controls 1.0; Label {}', testCase, ''); label.destroy() } + + function test_activeFocusOnTab() { + var test_control = 'import QtQuick 2.1; \ + import QtQuick.Controls 1.0; \ + Item { \ + width: 200; \ + height: 200; \ + property alias control1: _control1; \ + property alias control2: _control2; \ + property alias control3: _control3; \ + Label { \ + id: _control1; \ + activeFocusOnTab: true; \ + text: "control1" \ + } \ + Label { \ + id: _control2; \ + activeFocusOnTab: false; \ + text: "control2" \ + } \ + Label { \ + id: _control3; \ + activeFocusOnTab: true; \ + text: "control3" \ + } \ + } ' + + var control = Qt.createQmlObject(test_control, container, '') + control.control1.forceActiveFocus() + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + + control.control2.activeFocusOnTab = true + control.control3.activeFocusOnTab = false + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.destroy() + } +} } diff --git a/tests/auto/controls/data/tst_progressbar.qml b/tests/auto/controls/data/tst_progressbar.qml index 02b96ac367c041dd1ee886471b439a0d9a6e9473..3dc7a29abafbd5a9f761e77458fc609d7696f630 100644 --- a/tests/auto/controls/data/tst_progressbar.qml +++ b/tests/auto/controls/data/tst_progressbar.qml @@ -41,6 +41,11 @@ import QtQuick 2.1 import QtTest 1.0 +Item { + id: container + width: 400 + height: 400 + TestCase { id: testCase name: "Tests_ProgressBar" @@ -123,4 +128,74 @@ TestCase { progressBar3.destroy() progressBar4.destroy() } + + function test_activeFocusOnTab() { + var test_control = 'import QtQuick 2.1; \ + import QtQuick.Controls 1.0; \ + Item { \ + width: 200; \ + height: 200; \ + property alias control1: _control1; \ + property alias control2: _control2; \ + property alias control3: _control3; \ + ProgressBar { \ + y: 20; \ + id: _control1; \ + activeFocusOnTab: true; \ + } \ + ProgressBar { \ + y: 70; \ + id: _control2; \ + activeFocusOnTab: false; \ + } \ + ProgressBar { \ + y: 120; \ + id: _control3; \ + activeFocusOnTab: true; \ + } \ + } ' + + var control = Qt.createQmlObject(test_control, container, '') + control.control1.forceActiveFocus() + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + + control.control2.activeFocusOnTab = true + control.control3.activeFocusOnTab = false + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.destroy() + } +} } diff --git a/tests/auto/controls/data/tst_radiobutton.qml b/tests/auto/controls/data/tst_radiobutton.qml index 1bdb1c937526886c2d6bc830bd0735751bb48238..855f8c7a6196d30907925adac9b1f4c3a8c8afa0 100644 --- a/tests/auto/controls/data/tst_radiobutton.qml +++ b/tests/auto/controls/data/tst_radiobutton.qml @@ -186,5 +186,79 @@ Item { mouseClick(radioButton, radioButton.x + 1, radioButton.y + 1) verify(radioButton.activeFocus) } + + function test_activeFocusOnTab() { + radioButton.destroy() + wait(0) //QTBUG-30523 so processEvents is called + var test_control = 'import QtQuick 2.1; \ + import QtQuick.Controls 1.0; \ + Item { \ + width: 200; \ + height: 200; \ + property alias control1: _control1; \ + property alias control2: _control2; \ + property alias control3: _control3; \ + RadioButton { \ + y: 20; \ + id: _control1; \ + activeFocusOnTab: true; \ + text: "control1" \ + } \ + RadioButton { \ + y: 70; \ + id: _control2; \ + activeFocusOnTab: false; \ + text: "control2" \ + } \ + RadioButton { \ + y: 120; \ + id: _control3; \ + activeFocusOnTab: true; \ + text: "control3" \ + } \ + } ' + + var control = Qt.createQmlObject(test_control, container, '') + control.control1.forceActiveFocus() + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + + control.control2.activeFocusOnTab = true + control.control3.activeFocusOnTab = false + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.destroy() + } } } diff --git a/tests/auto/controls/data/tst_scrollview.qml b/tests/auto/controls/data/tst_scrollview.qml index a9e73d1ef1e54e5c1d0fe333164cf8b54d0c247d..c273c16b787ec776fcc9f537d531b6adce66dae4 100644 --- a/tests/auto/controls/data/tst_scrollview.qml +++ b/tests/auto/controls/data/tst_scrollview.qml @@ -42,6 +42,11 @@ import QtQuick 2.1 import QtTest 1.0 import QtQuick.Controls 1.0 +Item { + id: container + width: 400 + height: 400 + TestCase { id: testCase name: "Tests_ScrollView" @@ -107,4 +112,71 @@ TestCase { verify(scrollView.viewport.width < prevViewportWidth, "Viewport should be smaller with frame") scrollView.destroy() } + + function test_activeFocusOnTab() { + var test_control = 'import QtQuick 2.1; \ + import QtQuick.Controls 1.0; \ + Item { \ + width: 200; \ + height: 200; \ + property alias control1: _control1; \ + property alias control2: _control2; \ + property alias control3: _control3; \ + ScrollView { \ + id: _control1; \ + activeFocusOnTab: true; \ + } \ + ScrollView { \ + id: _control2; \ + activeFocusOnTab: false; \ + } \ + ScrollView { \ + id: _control3; \ + activeFocusOnTab: true; \ + } \ + } ' + + var control = Qt.createQmlObject(test_control, container, '') + control.control1.forceActiveFocus() + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + + control.control2.activeFocusOnTab = true + control.control3.activeFocusOnTab = false + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.destroy() + } +} } diff --git a/tests/auto/controls/data/tst_slider.qml b/tests/auto/controls/data/tst_slider.qml index 88171da5ada89efb691a5fbfdf72c6dcae7457f6..6d846fdba64b6c4bc63f078995f0404122e51259 100644 --- a/tests/auto/controls/data/tst_slider.qml +++ b/tests/auto/controls/data/tst_slider.qml @@ -155,5 +155,74 @@ Item { verify(control.activeFocus) control.destroy() } + + function test_activeFocusOnTab() { + var test_control = 'import QtQuick 2.1; \ + import QtQuick.Controls 1.0; \ + Item { \ + width: 200; \ + height: 200; \ + property alias control1: _control1; \ + property alias control2: _control2; \ + property alias control3: _control3; \ + Slider { \ + y: 20; \ + id: _control1; \ + activeFocusOnTab: true; \ + } \ + Slider { \ + y: 70; \ + id: _control2; \ + activeFocusOnTab: false; \ + } \ + Slider { \ + y: 120; \ + id: _control3; \ + activeFocusOnTab: true; \ + } \ + } ' + + var control = Qt.createQmlObject(test_control, container, '') + control.control1.forceActiveFocus() + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + + control.control2.activeFocusOnTab = true + control.control3.activeFocusOnTab = false + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.destroy() + } } } diff --git a/tests/auto/controls/data/tst_spinbox.qml b/tests/auto/controls/data/tst_spinbox.qml index e8b0b5b96b04a966d6b6e4f87301162325dcc009..a43dce41daf5454a4d15e7cf7046e0b88a842f1f 100644 --- a/tests/auto/controls/data/tst_spinbox.qml +++ b/tests/auto/controls/data/tst_spinbox.qml @@ -293,6 +293,76 @@ Item { spinbox.destroy() } + function test_activeFocusOnTab() { + var test_control = 'import QtQuick 2.1; \ + import QtQuick.Controls 1.0; \ + Item { \ + width: 200; \ + height: 200; \ + property alias control1: _control1; \ + property alias control2: _control2; \ + property alias control3: _control3; \ + SpinBox { \ + y: 20; \ + id: _control1; \ + activeFocusOnTab: true; \ + } \ + SpinBox { \ + y: 70; \ + id: _control2; \ + activeFocusOnTab: false; \ + } \ + SpinBox { \ + y: 120; \ + id: _control3; \ + activeFocusOnTab: true; \ + } \ + } ' + + var control = Qt.createQmlObject(test_control, container, '') + control.control1.forceActiveFocus() + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab) + sleep(4000) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + + control.control2.activeFocusOnTab = true + control.control3.activeFocusOnTab = false + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.destroy() + } + function test_ImplicitSize() // Verify if we correctly grow and shrink depending on contents { var spinbox = Qt.createQmlObject('import QtQuick.Controls 1.0; SpinBox {}', container, '') @@ -338,6 +408,8 @@ Item { downCoord.x = upCoord.x downCoord.y = item.y + item.height - arrowMargin } + + } } diff --git a/tests/auto/controls/data/tst_statusbar.qml b/tests/auto/controls/data/tst_statusbar.qml index df0a768c5c2dc5ca24605fbe8d482888852d3359..aa8a7d54df968a610102a7b54eb27bb6d00d8ac0 100644 --- a/tests/auto/controls/data/tst_statusbar.qml +++ b/tests/auto/controls/data/tst_statusbar.qml @@ -41,6 +41,11 @@ import QtQuick 2.1 import QtTest 1.0 +Item { + id: container + width: 400 + height: 400 + TestCase { id: testCase name: "Tests_StatusBar" @@ -52,5 +57,72 @@ TestCase { var statusBar = Qt.createQmlObject('import QtQuick.Controls 1.0; StatusBar {}', testCase, ''); statusBar.destroy() } + + function test_activeFocusOnTab() { + var test_control = 'import QtQuick 2.1; \ + import QtQuick.Controls 1.0; \ + Item { \ + width: 200; \ + height: 200; \ + property alias control1: _control1; \ + property alias control2: _control2; \ + property alias control3: _control3; \ + StatusBar { \ + id: _control1; \ + activeFocusOnTab: true; \ + } \ + StatusBar { \ + id: _control2; \ + activeFocusOnTab: false; \ + } \ + StatusBar { \ + id: _control3; \ + activeFocusOnTab: true; \ + } \ + } ' + + var control = Qt.createQmlObject(test_control, container, '') + control.control1.forceActiveFocus() + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + + control.control2.activeFocusOnTab = true + control.control3.activeFocusOnTab = false + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.destroy() + } +} } diff --git a/tests/auto/controls/data/tst_textarea.qml b/tests/auto/controls/data/tst_textarea.qml index 0756e4c2461d1dba28fa915db08c617b91b5ad1a..7391daea186b175070ed67bc946eb973685e2c18 100644 --- a/tests/auto/controls/data/tst_textarea.qml +++ b/tests/auto/controls/data/tst_textarea.qml @@ -78,5 +78,82 @@ TestCase { verify(control.activeFocus) control.destroy() } + + function test_activeFocusOnTab() { + // Set TextArea readonly so the tab/backtab can be tested toward the navigation + var test_control = 'import QtQuick 2.1; \ + import QtQuick.Controls 1.0; \ + Item { \ + width: 200; \ + height: 200; \ + property alias control1: _control1; \ + property alias control2: _control2; \ + property alias control3: _control3; \ + TextArea { \ + y: 20; \ + id: _control1; \ + activeFocusOnTab: true; \ + text: "control1"; \ + readOnly: true \ + } \ + TextArea { \ + y: 70; \ + id: _control2; \ + activeFocusOnTab: false; \ + text: "control2"; \ + readOnly: true \ + } \ + TextArea { \ + y: 120; \ + id: _control3; \ + activeFocusOnTab: true; \ + text: "control3"; \ + readOnly: true \ + } \ + } ' + + var control = Qt.createQmlObject(test_control, container, '') + + control.control1.forceActiveFocus() + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + + control.control2.activeFocusOnTab = true + control.control3.activeFocusOnTab = false + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.destroy() + } } } diff --git a/tests/auto/controls/data/tst_textfield.qml b/tests/auto/controls/data/tst_textfield.qml index 14a18b0e56e629471edb337de60e5a44e6fa3196..6c5ce6b58c6d6c405482768cafe1c03355e53b7b 100644 --- a/tests/auto/controls/data/tst_textfield.qml +++ b/tests/auto/controls/data/tst_textfield.qml @@ -276,5 +276,82 @@ TestCase { verify(control.activeFocus) control.destroy() } + + function test_activeFocusOnTab() { + // Set TextField readonly so the tab/backtab can be tested toward the navigation + var test_control = 'import QtQuick 2.1; \ + import QtQuick.Controls 1.0; \ + Item { \ + width: 200; \ + height: 200; \ + property alias control1: _control1; \ + property alias control2: _control2; \ + property alias control3: _control3; \ + TextField { \ + y: 20; \ + id: _control1; \ + activeFocusOnTab: true; \ + text: "control1"; \ + readOnly: true \ + } \ + TextField { \ + y: 70; \ + id: _control2; \ + activeFocusOnTab: false; \ + text: "control2"; \ + readOnly: true \ + } \ + TextField { \ + y: 120; \ + id: _control3; \ + activeFocusOnTab: true; \ + text: "control3"; \ + readOnly: true \ + } \ + } ' + + var control = Qt.createQmlObject(test_control, container, '') + + control.control1.forceActiveFocus() + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + + control.control2.activeFocusOnTab = true + control.control3.activeFocusOnTab = false + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.destroy() + } } } diff --git a/tests/auto/controls/data/tst_toolbar.qml b/tests/auto/controls/data/tst_toolbar.qml index 75cacf93bae95e8f05aa43e796e5187635ed60cc..fc545bd5ed5fe414bd0cd406519625b0b4c9113e 100644 --- a/tests/auto/controls/data/tst_toolbar.qml +++ b/tests/auto/controls/data/tst_toolbar.qml @@ -41,6 +41,11 @@ import QtQuick 2.1 import QtTest 1.0 +Item { + id: container + width: 400 + height: 400 + TestCase { id: testCase name: "Tests_ToolBar" @@ -52,5 +57,72 @@ TestCase { var toolBar = Qt.createQmlObject('import QtQuick.Controls 1.0; ToolBar {}', testCase, ''); toolBar.destroy() } + + function test_activeFocusOnTab() { + var test_control = 'import QtQuick 2.1; \ + import QtQuick.Controls 1.0; \ + Item { \ + width: 200; \ + height: 200; \ + property alias control1: _control1; \ + property alias control2: _control2; \ + property alias control3: _control3; \ + ToolBar { \ + id: _control1; \ + activeFocusOnTab: true; \ + } \ + ToolBar { \ + id: _control2; \ + activeFocusOnTab: false; \ + } \ + ToolBar { \ + id: _control3; \ + activeFocusOnTab: true; \ + } \ + } ' + + var control = Qt.createQmlObject(test_control, container, '') + control.control1.forceActiveFocus() + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + + control.control2.activeFocusOnTab = true + control.control3.activeFocusOnTab = false + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.destroy() + } +} } diff --git a/tests/auto/controls/data/tst_toolbutton.qml b/tests/auto/controls/data/tst_toolbutton.qml index af33cd5a63d3f23d2bb7b43f4860b87645330f1e..9ce7b14342f30de8a03c4b67c4f28ace57c5ebc8 100644 --- a/tests/auto/controls/data/tst_toolbutton.qml +++ b/tests/auto/controls/data/tst_toolbutton.qml @@ -70,6 +70,79 @@ TestCase { verify(control.activeFocus) control.destroy() } + + function test_activeFocusOnTab() { + var test_control = 'import QtQuick 2.1; \ + import QtQuick.Controls 1.0; \ + Item { \ + width: 200; \ + height: 200; \ + property alias control1: _control1; \ + property alias control2: _control2; \ + property alias control3: _control3; \ + ToolButton { \ + y: 20; \ + id: _control1; \ + activeFocusOnTab: true; \ + text: "control1" \ + } \ + ToolButton { \ + y: 70; \ + id: _control2; \ + activeFocusOnTab: false; \ + text: "control2" \ + } \ + ToolButton { \ + y: 120; \ + id: _control3; \ + activeFocusOnTab: true; \ + text: "control3" \ + } \ + } ' + + var control = Qt.createQmlObject(test_control, container, '') + + control.control1.forceActiveFocus() + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + + control.control2.activeFocusOnTab = true + control.control3.activeFocusOnTab = false + keyPress(Qt.Key_Tab) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(!control.control1.activeFocus) + verify(control.control2.activeFocus) + verify(!control.control3.activeFocus) + keyPress(Qt.Key_Tab, Qt.ShiftModifier) + verify(control.control1.activeFocus) + verify(!control.control2.activeFocus) + verify(!control.control3.activeFocus) + control.destroy() + } } }