Warning, /plasma/latte-dock/declarativeimports/components/ScrollArea.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2019 Michail Vourlakos <mvourlakos@gmail.com>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 import QtQuick 2.1
0007 
0008 MouseArea{
0009     id: __scrollArea
0010 
0011     property bool wheelIsBlocked: false
0012     property bool delayIsEnabled: true
0013     property int delay: 75
0014 
0015     signal scrolledUp(QtObject wheel);
0016     signal scrolledDown(QtObject wheel);
0017 
0018     onWheel: {
0019         if (delayIsEnabled && wheelIsBlocked){
0020             return;
0021         } else {
0022             wheelIsBlocked = true;
0023             __scrollDelayer.start();
0024         }
0025 
0026         var angle = wheel.angleDelta.y / 8;
0027 
0028         if (angle > 12) {
0029             //positive direction
0030             __scrollArea.scrolledUp(wheel);
0031         } else if (angle < -12) {
0032             //negative direction
0033             __scrollArea.scrolledDown(wheel);
0034         }
0035     }
0036 
0037     //! A timer is needed in order to handle also touchpads that probably
0038     //! send too many signals very fast. This way the signals per sec are limited.
0039     //! The user needs to have a steady normal scroll in order to not
0040     //! notice a annoying delay
0041     Timer{
0042         id: __scrollDelayer
0043         interval: __scrollArea.delay
0044         onTriggered: __scrollArea.wheelIsBlocked = false;
0045     }
0046 }