UI/UX pass: readability, feedback, safer actions, DRK branding

Items 1–12 of the interface review:

- Larger UI font (UI_FONT_SIZE) across widgets, menus, dialogs, Treeview rows.
- DRK-red header bar; window title shows entry count; runtime-drawn red-cross
  icon (also written to data/icon.png for the launcher).
- Status bar colour-coded by severity; transient messages auto-clear after 8 s,
  queue-count messages stay.
- Tab 1: more form spacing, digits-only PLZ, explicit "Auswahl entfernen" +
  Delete key for queue rows, confirm on "Warteschlange leeren", modal on
  duplicate save.
- Tab 2: raw lat/lon columns replaced by one "Karte" column (checkmark / red
  "fehlt"); ▲/▼ arrow on the active sort column; hint line always shows the
  saved-entry count.
- "Karte öffnen" with no coordinates shows a dialog, not just a status line.
- Window size/position remembered between sessions (data/window.json).

Verified by building and driving the window under Homebrew Python 3.12 / Tk 9;
non-GUI smoke tests still pass. Docs updated (changelog, overview, improvements,
data-model, setup, dev-notes).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-07 18:51:17 +02:00
parent 37c9642877
commit caecc60c7b
9 changed files with 349 additions and 103 deletions
+28 -2
View File
@@ -2,6 +2,32 @@
Notable changes to the app. Newest first.
## 2026-09-07 — UI/UX pass
A round of usability improvements aimed at the non-technical user
(see [improvements.md](improvements.md#uiux-review-2026-09-07)).
- **Larger UI font** (`UI_FONT_SIZE = 11`) applied to all default fonts, menus,
dialogs and the Treeview (taller rows).
- **DRK-red header bar** with the app name; window title shows the total count
("… · 142 Einsätze"); simple red-cross window icon drawn at runtime (also
written to `data/icon.png` for the launcher).
- **Status bar** is now colour-coded by severity (grey/green/orange/red), and
transient messages auto-clear after 8 s back to a neutral state; queue-count
messages stay put.
- **Tab 1:** more spacing in the form; PLZ field accepts digits only;
"+ Hinzufügen" is a solid button; explicit **"Auswahl entfernen"** button and
<kbd>Delete</kbd> key for queue rows; **"Warteschlange leeren"** now asks for
confirmation; **duplicate save shows a modal** (list + "trotzdem speichern?")
instead of a transient hint.
- **Tab 2:** the raw `lat`/`lon` columns are replaced by a single **"Karte"**
column (`✓` / red `fehlt`); active sort column shows a ▲/▼ arrow; the hint
line always shows the saved-entry count.
- **"Karte öffnen"** with no coordinates now shows a dialog, not just a status
line.
- **Window size & position** are remembered between sessions
(`data/window.json`).
## 2026-09-07 — data safety, robustness, easier input
Addressed the top three findings from [improvements.md](improvements.md).
@@ -43,5 +69,5 @@ Addressed the top three findings from [improvements.md](improvements.md).
### Verification
Non-GUI smoke tests (helpers, `DataStore` backup/atomic/recovery, geocoder
resilience) pass. **The GUI could not be run on the development Mac** — see
[dev-notes.md](dev-notes.md).
resilience) pass. The GUI now *can* be built and driven on the dev Mac via a
Homebrew Python with Tk 9 — see [dev-notes.md](dev-notes.md).