Warning, /plasma/plasma-workspace/lookandfeel/components/animation/RejectPasswordPathAnimation.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2022 ivan (@ratijas) tkachenko <me@ratijas.tk>
0003
0004 SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006
0007 import QtQuick 2.15
0008 import QtQml 2.15
0009
0010 import org.kde.kirigami 2.20 as Kirigami
0011
0012 PathAnimation {
0013 id: root
0014
0015 /** The magnitude/distance/offset of the animation, in the usual device-independent pixels. */
0016 property real swing: 15
0017
0018 /**
0019 * In which direction the target starts moving first.
0020 * Must be either Qt.LeftToRight or Qt.RightToLeft.
0021 *
0022 * By default it is opposite to the application's layout direction, to
0023 * make an animation feel more "disturbing".
0024 */
0025 property int initialDirection: Qt.application.layoutDirection === Qt.RightToLeft ? Qt.LeftToRight : Qt.RightToLeft
0026
0027 alwaysRunToEnd: true
0028
0029 // This animation's speed does not depend on user preferences, except when
0030 // we honor the "reduced animations" special case.
0031 // Animators with a duration of 0 do not fire reliably, which is why duration is at least 1.
0032 // see Bug 357532 and QTBUG-39766
0033 duration: Kirigami.Units.longDuration <= 1 ? 1 : 600
0034 easing.type: Easing.OutCubic
0035
0036 path: Path {
0037 PathPolyline {
0038 path: {
0039 const directionFactor = root.initialDirection === Qt.RightToLeft ? -1 : 1;
0040 const extreme = root.swing * directionFactor;
0041 const here = Qt.point(extreme, 0);
0042 const there = Qt.point(-extreme, 0);
0043 return [
0044 Qt.point(0, 0),
0045 here, there,
0046 here, there,
0047 here, there,
0048 Qt.point(0, 0),
0049 ];
0050 }
0051 }
0052 }
0053 }