Files
RedBear-OS/local/recipes/qt/qtdeclarative/source/examples/quick/pointerhandlers/flingAnimation.qml
T
vasilito f31522130f fix: comprehensive boot warnings and exceptions — fixable silenced, unfixable diagnosed
Build system (5 gaps hardened):
- COOKBOOK_OFFLINE defaults to true (fork-mode)
- normalize_patch handles diff -ruN format
- New 'repo validate-patches' command (25/25 relibc patches)
- 14 patched Qt/Wayland/display recipes added to protected list
- relibc archive regenerated with current patch chain

Boot fixes (fixable):
- Full ISO EFI partition: 16 MiB → 1 MiB (matches mini, BIOS hardcoded 2 MiB offset)
- D-Bus system bus: absolute /usr/bin/dbus-daemon path (was skipped)
- redbear-sessiond: absolute /usr/bin/redbear-sessiond path (was skipped)
- daemon framework: silenced spurious INIT_NOTIFY warnings for oneshot_async services (P0-daemon-silence-init-notify.patch)
- udev-shim: demoted INIT_NOTIFY warning to INFO (expected for oneshot_async)
- relibc: comprehensive named semaphores (sem_open/close/unlink) replacing upstream todo!() stubs
- greeterd: Wayland socket timeout 15s → 30s (compositor DRM wait)
- greeter-ui: built and linked (header guard unification, sem_compat stubs removed)
- mc: un-ignored in both configs, fixed glib/libiconv/pcre2 transitive deps
- greeter config: removed stale keymapd dependency from display/greeter services
- prefix toolchain: relibc headers synced, _RELIBC_STDLIB_H guard unified

Unfixable (diagnosed, upstream):
- i2c-hidd: abort on no-I2C-hardware (QEMU) — process::exit → relibc abort
- kded6/greeter-ui: page fault 0x8 — Qt library null deref
- Thread panics fd != -1 — Rust std library on Redox
- DHCP timeout / eth0 MAC — QEMU user-mode networking
- hwrngd/thermald — no hardware RNG/thermal in VM
- live preload allocation — BIOS memory fragmentation, continues on demand
2026-05-05 20:20:37 +01:00

102 lines
2.9 KiB
QML

// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import "components"
Rectangle {
id: root
width: 640
height: 480
color: "black"
Repeater {
model: 2
Image {
id: ball
objectName: "ball" + index
source: "images/redball.png"
property real homeX: 200 + index * 200
property real homeY: 200
width: 80; height: 80; x: homeX; y: 200
Text {
anchors.centerIn: parent
color: "white"
text: momentum.velocity.x.toFixed(2) + "," + momentum.velocity.y.toFixed(2)
}
SequentialAnimation {
id: anim
function restart(vel) {
stop()
momentum.velocity = vel
start()
}
MomentumAnimation { id: momentum; target: ball }
PauseAnimation { duration: 500 }
ParallelAnimation {
id: ballReturn
NumberAnimation {
target: ball
property: "x"
to: homeX
duration: 1000
easing.period: 50
easing.type: Easing.OutElastic
}
NumberAnimation {
target: ball
property: "y"
to: homeY
duration: 1000
easing.type: Easing.OutElastic
}
}
}
DragHandler {
id: dragHandler
objectName: "dragHandler" + index
onActiveChanged: {
if (!active)
anim.restart(centroid.velocity)
}
}
Rectangle {
visible: dragHandler.active
anchors.fill: parent
anchors.margins: -5
radius: width / 2
opacity: 0.25
}
Rectangle {
visible: width > 0
width: dragHandler.centroid.velocity.length() / 10
height: 2
x: ball.width / 2
y: ball.height / 2
z: -1
rotation: Math.atan2(dragHandler.centroid.velocity.y, dragHandler.centroid.velocity.x) * 180 / Math.PI
transformOrigin: Item.BottomLeft
antialiasing: true
Image {
source: "images/arrowhead.png"
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
width: 16
height: 12
antialiasing: true
}
}
}
}
}