// Gallery — M1: metadata scan + placeholder list. // The real grid (image cells) arrives with M3 per HANDOFF.md. import { ListView, VerticalBox } from "std-widgets.slint"; export component Main inherits Window { title: "Gallery"; /// Scan/DB status line ("Scanning… 1234", "5123 files (42+ 3~ 1–) in 380 ms"). in property status: "Scanning…"; /// Scanned file paths, newest first (M1: shown as text rows). in property <[string]> items; VerticalBox { width: 100%; spacing: 12px; padding: 24px; // Respect status-bar / nav-bar cutouts (built into the Slint window // on Android via safe-area-insets). padding-top: 24px + root.safe-area-insets.top; padding-bottom: 24px + root.safe-area-insets.bottom; Text { text: "Gallery"; font-size: 24px; font-weight: 600; } Text { text: "\{status}"; font-size: 14px; } // M1: paths as text. M3 replaces the row body with square image cells. ListView { width: 100%; vertical-stretch: 1; for path[index] in root.items: Rectangle { height: 28px; width: parent.width; background: Math.mod(index, 2) == 0 ? #1e1e1e : #242424; border-radius: 4px; Text { x: 8px; text: path; font-size: 13px; vertical-alignment: center; overflow: elide; } } } } }