Lumina 1.2.0
Überarbeitete Oberfläche, aus zwei Reviews entstanden: einem gestalterischen
(Leitidee Leuchtkasten - die Oberfläche tritt zurück, die Bilder tragen) und
einem zur macOS-Idiomatik.
Bibliothek
- Markieren und Zusammenstellen sind getrennt: Klick markiert, Cmd und Umschalt
erweitern, Pfeiltasten bewegen die Markierung, ⌘A markiert alles - Entfernte Bilder verschwinden aus dem Raster, statt grau liegen zu bleiben.
Löschtaste entfernt die Markierung, die Statuszeile führt zurück - Dateinamen sind aus dem Raster verschwunden und erscheinen beim Überfahren
zusammen mit einem Play-Knopf - Ein Import-Menü statt zweier fast gleicher Knöpfe, ein prominenter
Abspielen-Knopf, "Unterordner einbeziehen" beim Import statt in den
Wiedergabe-Einstellungen
Einstellungen
- Vorlagen als Karten mit aktivem Zustand, darunter die vier häufig genutzten
Regler, alles Übrige eingeklappt: sichtbar 9 statt 17 Bedienelemente - Die Übergangsdauer wird ausgeblendet statt ausgegraut, wenn es keinen Übergang gibt
Player
- Ladezustand zeigt das Bild unscharf vorab statt eines Spinners auf Schwarz
- Steuerleiste entschlackt, mit Verlauf über die volle Breite; das Ende der Show
ist ein Zustand dieser Leiste statt eines Dialogs mitten im Bild - Fortschrittsbalken ist im Ruhezustand ein Haarstrich
Behoben
- Klicks auf die Kachel-Knöpfe wurden von der Auswahl-Geste geschluckt
- Verlauf und Schatten der Steuerleiste waren auf Kapselbreite abgeschnitten
Aus dem Code-Review
- Animierte WebP wurden immer in voller Auflösung dekodiert und der Puffer nur nach
Frame-Anzahl begrenzt: eine 4000x4000-Animation hätte 1.5 GB belegt. Frames werden
jetzt auf Anzeigegrösse verkleinert, der Puffer ist auf 64 MB begrenzt - Der WebP-Decoder reichte einen Zeiger aus
Data.withUnsafeBytesan libwebp weiter,
das ihn behält und später daraus liest. Er besitzt seinen Puffer jetzt selbst;
geprüft mit 3000 dekodierten Frames unter dem Address Sanitizer - Konnte keine Datei gelesen werden, rief sich der Bildwechsel unbegrenzt selbst auf.
Jetzt eine Schleife mit Rundendeckel und sichtbarer Fehlermeldung - Ken-Burns konnte bei Skalierung 1.0 einen leeren Rand zeigen und hielt bei ganz
abgespielten Animationen zu früh an - Vorauslade-Aufgaben wurden nie abgebrochen und füllten den geleerten Cache neu
- Der Frame-Producer lief bei unlesbaren Dateien mit 100 Hz leer
- Zwei unzutreffende
@unchecked Sendable-Zusagen entfernt - Meldungen gehen an
os.Loggerstatt still verloren
Aus dem zweiten Review-Durchgang
- Eine laufende Dekodierung wurde unabhängig von der angeforderten Zielgrösse geteilt und
ihr Ergebnis unter der grösseren Anfrage gespeichert. Danach galt ein zu klein dekodiertes
Bild dauerhaft als gross genug - Das Überspringen unlesbarer Dateien sprang immer an den Listenanfang, auch ohne
eingeschaltete Wiederholung: eine Show mit einer defekten Datei am Ende endete nie - Mehrere schnelle Tastendrücke innerhalb eines Ticks überschrieben einander, weil nur ein
Kommando zwischengespeichert wurde