From c1ee33944687a065e8617d90373f569c81676ae0 Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Sat, 12 Sep 2026 21:40:07 +0200 Subject: [PATCH] =?UTF-8?q?fix(v5):=20Kleinkram=20der=20Durchsicht=20?= =?UTF-8?q?=E2=80=94=20R=C3=BCckfragen=20vor=20Beenden=20und=20L=C3=B6sche?= =?UTF-8?q?n,=20Enter=20speichert,=20Escape=20schlie=C3=9Ft,=20ein=20Toast?= =?UTF-8?q?=20je=20Disc,=20NFO=20mit=20Kennung,=20=E2=80=9E(2)"=20statt=20?= =?UTF-8?q?Kennungsstumpf,=20Werkzeug-Suche=20gemerkt,=20CD-Lesen=20ohne?= =?UTF-8?q?=20Blockade?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit WAS (je Fund der Durchsicht vom 12.09.2026): - F15 Tray „Beenden" fragt nach, wenn ein Rip oder eine Kompression läuft (app.quit reißt makemkvcon/HandBrake über die Leine mit). - F17 „Roh-Dateien löschen" und „Ordner löschen" fragen im Fenster nach (Größe und Pfad stehen dabei) — ein Klick war vorher 30 GB. - F18 Eingabefelder speichern auch bei Enter und beim Verschwinden des Feldes (Bereichswechsel) — Tipparbeit ging vorher verloren. - F19 Dialoge: Escape schließt, role=dialog/aria-modal, Fokus im Dialog. - F20 Toast „Disc erkannt" einmal je Disc und Titel, nicht dreimal. - F21 Was mit dem Poster passiert, steht in den Hinweisen (R4). - F22 Werkzeug-Funde gelten 60 s; ein neuer Pfad und „werkzeuge-laden" suchen frisch — vorher bei fehlendem MakeMKV je Aufruf dreimal reg query /s (bis 45 s, synchron). - F23 movie.nfo/tvshow.nfo tragen . - F24 Doppelter Zielordner heißt „Akira (1988) (2)" statt „[bluray-2]". - F25 Umlaute in drei Knopftexten. - F26 Phase „rettet" zählt im Haupt als laufender Vorgang (Update-Sperre, Taskleiste). - F27 „Neu komprimieren" nicht mehr für verschobene, unkomprimierte Vorgänge. - F28 Die Automatik sagt bei Audio-CD und unbekannter Disc, warum sie nichts tut. - F30 Audio-CD-Spuren werden asynchron gelesen (alle acht Blöcke Luft), „Abbrechen" wirkt mitten in der Spur. - A5 Der tote Schlüssel transcodePreset ist aus presetFuer raus. Co-Authored-By: Claude Opus 5 --- rippy-windows/src/fenster/bausteine.tsx | 42 ++++++++++++++-- .../src/fenster/einstellungen/Karten.tsx | 50 ++++++++++++++++--- .../src/fenster/uebersicht/LaufwerkKachel.tsx | 6 +-- rippy-windows/src/haupt/index.ts | 36 +++++++++++-- rippy-windows/src/kern/ablage/nfo.ts | 8 +++ rippy-windows/src/kern/ablage/struktur.ts | 12 +++-- rippy-windows/src/kern/ablauf/ablegen.ts | 6 ++- rippy-windows/src/kern/ablauf/pipeline.ts | 20 +++++--- rippy-windows/src/kern/dienste/automatik.ts | 10 +++- rippy-windows/src/kern/dienste/laufwerke.ts | 7 +-- rippy-windows/src/kern/dienste/vorgaenge.ts | 5 +- rippy-windows/src/kern/dienste/werkzeuge.ts | 28 +++++++++-- rippy-windows/src/kern/index.ts | 2 +- .../src/kern/komprimieren/presets.ts | 14 +++--- rippy-windows/src/kern/laufwerk/disc.ts | 24 ++++++--- rippy-windows/test/automatik.test.ts | 13 +++-- rippy-windows/test/handbrake.test.ts | 9 ++-- 17 files changed, 238 insertions(+), 54 deletions(-) diff --git a/rippy-windows/src/fenster/bausteine.tsx b/rippy-windows/src/fenster/bausteine.tsx index 3a37bf5..c6ed719 100644 --- a/rippy-windows/src/fenster/bausteine.tsx +++ b/rippy-windows/src/fenster/bausteine.tsx @@ -375,6 +375,23 @@ export function Feld({ }) { const [entwurf, setEntwurf] = useState(wert) useEffect(() => setEntwurf(wert), [wert]) + // 5.7.0 (Durchsicht F18): Gespeichert wird beim Verlassen, bei Enter UND + // wenn das Feld verschwindet (Bereichswechsel, Dialog zu) — vorher ging + // Tipparbeit verloren, wenn man statt zu klicken Enter drückte oder in + // einen anderen Bereich wechselte. Die Refs tragen den jüngsten Stand in + // die Aufräum-Funktion des Effekts. + const juengster = useRef({ entwurf, wert, aufAendern }) + juengster.current = { entwurf, wert, aufAendern } + useEffect( + () => () => { + const j = juengster.current + if (j.entwurf !== j.wert) j.aufAendern(j.entwurf) + }, + [], + ) + const speichern = (): void => { + if (entwurf !== wert) aufAendern(entwurf) + } return (