46 lines
1.0 KiB
QML
46 lines
1.0 KiB
QML
// Copyright (C) 2017 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
|
|
import QtQuick
|
|
|
|
Image {
|
|
id: container
|
|
|
|
property int repeatDelay: 300
|
|
property int repeatDuration: 75
|
|
property bool pressed
|
|
|
|
signal clicked
|
|
|
|
scale: pressed ? 0.9 : 1
|
|
|
|
function release() {
|
|
autoRepeatClicks.stop()
|
|
container.pressed = false
|
|
}
|
|
|
|
SequentialAnimation on pressed {
|
|
id: autoRepeatClicks
|
|
running: false
|
|
|
|
PropertyAction { target: container; property: "pressed"; value: true }
|
|
ScriptAction { script: container.clicked() }
|
|
PauseAnimation { duration: container.repeatDelay }
|
|
|
|
SequentialAnimation {
|
|
loops: Animation.Infinite
|
|
ScriptAction { script: container.clicked() }
|
|
PauseAnimation { duration: container.repeatDuration }
|
|
}
|
|
}
|
|
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
|
|
onPressed: autoRepeatClicks.start()
|
|
onReleased: container.release()
|
|
onCanceled: container.release()
|
|
}
|
|
}
|
|
|