Commit Graph
23 Commits
Author SHA1 Message Date
jwinterm 252b358baa feat(scene): per-lap variety, the occasional face-plant, and a sky per tab
Every tab was running the identical eight seconds forever. Three changes:

- Each lap rolls its own timing: 3-5s of empty field, and the money now enters
  on its own delay at its own pace instead of shadowing the doge every time.
- Roughly one lap in six the doge eats it partway down the field: he tips
  nose-first onto the grass, GAME OVER comes up, and the coins he never reached
  are still sitting there. Costs no new art — it is the running sprite pivoted
  on its own feet.
- A `variant` on SceneWidget picks the sky: dusk (History, lock screen), dawn
  (Receive), night (Send, with stars and a moon instead of the sun).

The cycle is now a timer-driven state machine rather than one SequentialAnimation.
That is not stylistic: a lap that rolls its own durations has to assign them
somewhere, and assigning a duration to a child of a *running* SequentialAnimation
makes the group recompute and re-enter its own ScriptAction until the JS stack
blows. Qt flags the binding form of the same mistake as a binding loop.

Verified by headless qml6 render: a forced trip lap, and a clean run with no QML
warnings.
2026-08-31 13:23:41 -04:00
jwinterm 9bd8cb0676 feat(send,receive): the ambient scene, as a layout item this time
Send had a large empty region under the form doing nothing, and Receive had
nothing at all. Both get the scene back — but as real layout items, not as the
overlay that painted over the forms last time.

Send: the form only ever needed the top of the tab, so the QFormLayout is now
wrapped in a vbox and the scene takes the rest. The widget's vertical size
policy was Maximum, which made it hug the form; it owns the whole tab now. The
form itself is untouched, and nothing is drawn on top of the address or amount
fields.

Receive: a short banner under the address table.

Built and smoke-tested from the AppImage lane.
2026-08-31 12:48:41 -04:00
jwinterm 1828353d52 fix(send,receive): drop the corner doge that painted over the forms
IdleDoge scaled its movie from `currentImage()` after `jumpToFrame(0)`, but the
first frame is not decoded at that point, so the size came back null, the
scaling was skipped, and the QLabel ended up at the GIF's full 500x397. Parked
at the bottom-right of the form it painted an opaque 500x397 slab of window
background over the lower half of Send and over the Receive address table.

Send is the screen where money leaves the wallet; it does not get an overlay
sitting on top of the address and amount fields at all. Receive loses it for
the same reason. SendWidget.cpp and ReceiveWidget.cpp are back to exactly their
pre-ambient state, and the widget is removed rather than left unused.

The ambient scene keeps the places where it has its own real estate: the lock
screen, the History banner, and the mining tab.
2026-08-31 12:15:00 -04:00
jwinterm 6942cbb459 feat: ambient silliness across the app (reduced-motion aware)
- Lock screen: full ambient scene above the unlock form (the idle 'screensaver'
  — wallet auto-locks here) instead of a thin banner.
- History ('home'): full scene as a top banner.
- Send/Receive: IdleDoge — a small click-through sitting doge in the corner,
  the 'most quiet' idle for task screens.
- Mining keeps its own scene.
All gated by Config::reducedMotion (scenes freeze, doge shows a still frame).
2026-08-31 11:10:25 -04:00
tobtoht ce2f332114 subaddress: cleanup 2025-03-27 09:17:38 +01:00
tobtoht 4aa571454b Subaddress: cleanup 2025-03-11 20:45:34 +01:00
tobtoht dff4752e82 update copyright for 2025 2025-02-20 18:52:03 +01:00
tobtoht 8ab420b802 cleanup includes 2024-10-01 22:17:54 +02:00
tobtoht c31b351b17 fix a few memory leaks 2024-10-01 05:47:57 +02:00
tobtoht f97fa90521 receive: improve wallet file corruption detection 2024-03-08 17:35:57 +01:00
tobtoht 4c7015f76f update copyright to 2024 2024-01-01 18:07:58 +01:00
tobtoht a13ca973cc Receive: persistent settings, cleanup 2023-11-17 14:02:49 +01:00
tobtoht 951f16e602 Documentation browser, improved error messages 2023-10-03 21:00:12 +02:00
tobtoht 906bd164e4 receive: add option to show change addresses 2023-06-27 15:21:46 +02:00
tobtoht 0abd323bbb refactor: move ModelUtils into Utils 2023-03-28 22:42:12 +02:00
tobtoht 371aef9de0 Receive: show address index 2023-03-07 21:36:15 +01:00
tobtoht 402bea3fd6 refactor: remove appcontext, cleanup Wallet 2023-03-01 03:05:56 +01:00
tobtoht 64f425badf update copyright for 2023 2023-01-02 20:31:22 +01:00
tobtoht 938d2ddb4e Update copyright to 2022 2022-02-10 11:26:41 +01:00
tobtoht 09e4185cab Receive: clarify strings, remove cm icons 2021-10-23 15:25:29 +02:00
tobtoht e512e539b6 PaymentRequestDialog 2021-10-01 19:10:46 +02:00
tobtoht 1e30b1f4a1 Resizeable QrCode 2021-07-04 00:06:24 +02:00
tobtoht 531cc5f980 Widgets: rename & cleanup 2021-06-28 19:48:23 +02:00