Warning, /frameworks/kirigami/autotests/wheelhandler/tst_filterMouseEvents.qml is written in an unsupported language. File is not indexed.
0001 /* SPDX-FileCopyrightText: 2021 Noah Davis <noahadvs@gmail.com> 0002 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0003 */ 0004 0005 import QtQuick 0006 import QtQuick.Controls as QQC2 0007 import org.kde.kirigami as Kirigami 0008 import QtTest 0009 0010 TestCase { 0011 id: root 0012 name: "WheelHandler filterMouseEvents" 0013 visible: true 0014 when: windowShown 0015 width: flickable.implicitWidth 0016 height: flickable.implicitHeight 0017 0018 function test_MouseFlick() { 0019 const x = flickable.contentX 0020 const y = flickable.contentY 0021 mousePress(flickable, flickable.leftMargin + 10, 10) 0022 mouseMove(flickable) 0023 mouseRelease(flickable) 0024 verify(flickable.contentX === x && flickable.contentY === y, "not moved") 0025 } 0026 0027 // NOTE: Unfortunately, this test can't work. Flickable does not handle touch events, only mouse events synthesized from touch events 0028 // TODO: Uncomment if Flickable is ever able to use touch events. 0029 /*function test_TouchFlick() { 0030 const x = flickable.contentX, y = flickable.contentY 0031 let touch = touchEvent(flickable) 0032 // Press on center. 0033 touch.press(0, flickable) 0034 touch.commit() 0035 // Move a bit towards top left. 0036 touch.move(0, flickable, flickable.width/2 - 50, flickable.height/2 - 50) 0037 touch.commit() 0038 // Release at the spot we moved to. 0039 touch.release(0, flickable, flickable.width/2 - 50, flickable.height/2 - 50) 0040 touch.commit() 0041 verify(flickable.contentX !== x || flickable.contentY !== y, "moved") 0042 }*/ 0043 0044 function test_MouseScrollBars() { 0045 const x = flickable.contentX, y = flickable.contentY 0046 mousePress(flickable, flickable.leftMargin + 10, 10) 0047 mouseMove(flickable) 0048 const interactive = flickable.QQC2.ScrollBar.vertical.interactive || flickable.QQC2.ScrollBar.horizontal.interactive 0049 mouseRelease(flickable) 0050 verify(interactive, "interactive scrollbars") 0051 } 0052 0053 function test_TouchScrollBars() { 0054 const x = flickable.contentX, y = flickable.contentY 0055 let touch = touchEvent(flickable) 0056 touch.press(0, flickable, flickable.leftMargin + 10, 10) 0057 touch.commit() 0058 touch.move(0, flickable) 0059 touch.commit() 0060 const interactive = flickable.QQC2.ScrollBar.vertical.interactive || flickable.QQC2.ScrollBar.horizontal.interactive 0061 touch.release(0, flickable) 0062 touch.commit() 0063 verify(!interactive, "no interactive scrollbars") 0064 } 0065 0066 ScrollableFlickable { 0067 id: flickable 0068 anchors.fill: parent 0069 Kirigami.WheelHandler { 0070 id: wheelHandler 0071 target: flickable 0072 filterMouseEvents: true 0073 } 0074 } 0075 }