Bugfix/96 legenden spaltenbreite #97

Merged
Daniel merged 2 commits from bugfix/96-legenden-spaltenbreite into unstable 2026-10-02 11:30:39 +00:00
Member

Was

Mit gleichen Spaltenbreiten bestimmte der längste Legendentext die Breite aller Spalten; die dreispaltige Basemap-Legende wurde 431 mm breit. Jetzt bricht Legendentext nach 60 mm um, die Spalten sind ungleich breit, und der Titel der Basemap-Legende ist zweizeilig („Kartengrundlage“ / „(basemap.de)“), weil er sonst die Mindestbreite bestimmte. Standard- und Mindestbreite der Legenden ist die Breite des Kartenschilds (180 mm); weil QGIS die Mindestgröße nicht im Projekt speichert, wird sie am Layout vermerkt und beim Laden des Projekts wieder gesetzt. Issue: #96.

Wie geprüft

  • Zuerst die Tests (9 neue, u. a. Mindestbreite und Listener beim Laden; ungleiche Spalten und Umbruch in der Kartenrand-Anordnung, in der Platzierung und der Mindestgröße der Basemap-Legende, zweizeiliger Titel), rot vor der Umsetzung.
  • python scripts/run_tests.py sn_basis --baseline: [sn_basis] GRÜN: 429/429 bestanden, 0 Fehlschläge, 0 Fehler, 0 übersprungen – unverändert gegenüber Baseline.
  • python scripts/pruefe_umlaute.py Plugin_SN_Basis: 0 Funde.
  • QGIS-Test: QGIS 3.44.4 (Qt5), offscreen, dieselben drei Fälle wie bei #93 (24 Fachlayer, echte Basemap):
    • Messung Basemap-Legende (20 Einträge): ohne Änderung 1/2/3 Spalten 163/288/431 mm breit; nur ungleiche Spalten 163/245/375 mm; mit Umbruch 60 mm und zweizeiligem Titel 89/164/226 mm.
    • Fall A (kleines Verfahren): Seite 380 × 100 → 416 × 358 mm (vorher 621 × 322 mm) – schmaler, dafür etwas höher, weil lange Bezeichnungen zweizeilig werden; keine Überlappung, Bild angesehen.
    • Fälle B und C: unverändert, keine Überlappung.
    • Mindestbreite: alle Legenden ≥ 180 mm (Hauptlegende in B mit 60 mm Inhalt → 180 mm). Projekt gespeichert und neu geladen, Listener aktiv, Legende gezeichnet und Größe neu berechnet: bleibt 180 mm (ohne Listener vorher gemessen: 43,7 mm).
    • Nicht geprüft: QGIS 4.

Änderungen an Verträgen

Neue Layout-Eigenschaft sn_legende_mindestbreite; sn_basis.main verbindet/trennt setup_mindestbreiten_listener() (readProject) – dokumentiert in schnittstellen.md Abschnitt 12.

Übergabenotiz

Aufgabe: Plugin_SN_Basis #96 – mehrspaltige Legenden sind zu breit.
Stand: fertig.
Geändert:

  • modules/print_kartenrand.py – TEXTUMBRUCH_MM = 60, Vermessung mit ungleichen Spalten und Umbruch.
  • modules/basemap_legende_layout.py – zweizeiliger Titel, Umbruch am Element, mindestgroesse/platziere mit ungleichen Spalten.
  • modules/print_kartenrand.py – zusätzlich setze_legenden_mindestbreite, wende_mindestbreiten_an, Listener.
  • main.py – Listener verbinden/trennen.
  • tests/test_print_kartenrand.py, tests/test_basemap_legende_layout.py, changelog.txt.
    Nachweis: siehe „Wie geprüft“.
    Entscheidungen/Annahmen: Mindestbreite 180 mm = Breite des Kartenschilds (die zunächst genannten 210 mm sind der gesamte Kartenrand mit Abständen; abgestimmt). Umbruchbreite 60 mm (Kompromiss: 50 mm macht die Legende deutlich höher, 70 mm kaum schmaler). Gilt für Haupt- und Basemap-Legende im Standardlayout; die Hauptlegende hat in den Tests kurze Texte und ändert sich dadurch nicht. „Anlage zur Baufreigabe“ nicht geändert.
    Offen / nächste Schritte: Test unter QGIS 4; ggf. Umbruchbreite fachlich festlegen.
    Wissensbasis: Projektwissen-Branch docs/96-legenden-spaltenbreite: fallstricke.md (Spaltenbreite, Umbruch, Titel, Mindestgröße nicht gespeichert), schnittstellen.md Abschnitt 12, modulkarte.md, STATUS.md Punkt 16, Testkatalog.
    Kontext für die nächste Sitzung: sn_basis/modules/print_kartenrand.py, sn_basis/modules/basemap_legende_layout.py (platziere, mindestgroesse).

Checkliste

  • Nur Änderungen zum Issue
  • Keine direkten Qt/QGIS-Importe, keine Debug-print
  • changelog.txt ergänzt
  • Wissensbasis nachgezogen

🤖 Generated with Claude Code

## Was Mit gleichen Spaltenbreiten bestimmte der längste Legendentext die Breite aller Spalten; die dreispaltige Basemap-Legende wurde 431 mm breit. Jetzt bricht Legendentext nach 60 mm um, die Spalten sind ungleich breit, und der Titel der Basemap-Legende ist zweizeilig („Kartengrundlage“ / „(basemap.de)“), weil er sonst die Mindestbreite bestimmte. Standard- und Mindestbreite der Legenden ist die Breite des Kartenschilds (180 mm); weil QGIS die Mindestgröße nicht im Projekt speichert, wird sie am Layout vermerkt und beim Laden des Projekts wieder gesetzt. Issue: #96. ## Wie geprüft - Zuerst die Tests (9 neue, u. a. Mindestbreite und Listener beim Laden; ungleiche Spalten und Umbruch in der Kartenrand-Anordnung, in der Platzierung und der Mindestgröße der Basemap-Legende, zweizeiliger Titel), rot vor der Umsetzung. - `python scripts/run_tests.py sn_basis --baseline`: `[sn_basis] GRÜN: 429/429 bestanden, 0 Fehlschläge, 0 Fehler, 0 übersprungen` – unverändert gegenüber Baseline. - `python scripts/pruefe_umlaute.py Plugin_SN_Basis`: 0 Funde. - QGIS-Test: **QGIS 3.44.4 (Qt5), offscreen**, dieselben drei Fälle wie bei #93 (24 Fachlayer, echte Basemap): - Messung Basemap-Legende (20 Einträge): ohne Änderung 1/2/3 Spalten 163/288/431 mm breit; nur ungleiche Spalten 163/245/375 mm; mit Umbruch 60 mm und zweizeiligem Titel **89/164/226 mm**. - Fall A (kleines Verfahren): Seite 380 × 100 → **416 × 358 mm** (vorher 621 × 322 mm) – schmaler, dafür etwas höher, weil lange Bezeichnungen zweizeilig werden; keine Überlappung, Bild angesehen. - Fälle B und C: unverändert, keine Überlappung. - Mindestbreite: alle Legenden ≥ 180 mm (Hauptlegende in B mit 60 mm Inhalt → 180 mm). Projekt gespeichert und neu geladen, Listener aktiv, Legende gezeichnet und Größe neu berechnet: bleibt 180 mm (ohne Listener vorher gemessen: 43,7 mm). - **Nicht geprüft:** QGIS 4. ## Änderungen an Verträgen Neue Layout-Eigenschaft `sn_legende_mindestbreite`; `sn_basis.main` verbindet/trennt `setup_mindestbreiten_listener()` (readProject) – dokumentiert in `schnittstellen.md` Abschnitt 12. ## Übergabenotiz **Aufgabe:** Plugin_SN_Basis #96 – mehrspaltige Legenden sind zu breit. **Stand:** fertig. **Geändert:** - `modules/print_kartenrand.py` – `TEXTUMBRUCH_MM = 60`, Vermessung mit ungleichen Spalten und Umbruch. - `modules/basemap_legende_layout.py` – zweizeiliger Titel, Umbruch am Element, `mindestgroesse`/`platziere` mit ungleichen Spalten. - `modules/print_kartenrand.py` – zusätzlich `setze_legenden_mindestbreite`, `wende_mindestbreiten_an`, Listener. - `main.py` – Listener verbinden/trennen. - `tests/test_print_kartenrand.py`, `tests/test_basemap_legende_layout.py`, `changelog.txt`. **Nachweis:** siehe „Wie geprüft“. **Entscheidungen/Annahmen:** Mindestbreite 180 mm = Breite des Kartenschilds (die zunächst genannten 210 mm sind der gesamte Kartenrand mit Abständen; abgestimmt). Umbruchbreite 60 mm (Kompromiss: 50 mm macht die Legende deutlich höher, 70 mm kaum schmaler). Gilt für Haupt- und Basemap-Legende im Standardlayout; die Hauptlegende hat in den Tests kurze Texte und ändert sich dadurch nicht. „Anlage zur Baufreigabe“ nicht geändert. **Offen / nächste Schritte:** Test unter QGIS 4; ggf. Umbruchbreite fachlich festlegen. **Wissensbasis:** Projektwissen-Branch `docs/96-legenden-spaltenbreite`: `fallstricke.md` (Spaltenbreite, Umbruch, Titel, Mindestgröße nicht gespeichert), `schnittstellen.md` Abschnitt 12, `modulkarte.md`, `STATUS.md` Punkt 16, Testkatalog. **Kontext für die nächste Sitzung:** `sn_basis/modules/print_kartenrand.py`, `sn_basis/modules/basemap_legende_layout.py` (`platziere`, `mindestgroesse`). ## Checkliste - [x] Nur Änderungen zum Issue - [x] Keine direkten Qt/QGIS-Importe, keine Debug-`print` - [x] `changelog.txt` ergänzt - [x] Wissensbasis nachgezogen 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Daniel added 2 commits 2026-10-02 11:30:31 +00:00
Mit gleichen Spaltenbreiten bestimmte der längste Legendentext die Breite aller Spalten;
die dreispaltige Basemap-Legende wurde 431 mm breit. Jetzt: ungleich breite Spalten,
automatischer Textumbruch nach 60 mm (TEXTUMBRUCH_MM in print_kartenrand, auch für die
Basemap-Legende) und zweizeiliger Titel „Kartengrundlage / (basemap.de)“, der sonst die
Mindestbreite bestimmte. Im QGIS-Test: dreispaltig 226 statt 431 mm, einspaltig 89 statt 163 mm.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Standard- und Mindestbreite der Haupt- und Basemap-Legende ist die Breite des Kartenschilds
(180 mm, MIN_SPALTENBREITE_MM) – die zunächst genannten 210 mm sind der gesamte Kartenrand
einschließlich Abständen. Die Legenden passen sich weiter ihrem Inhalt an, werden aber nie
schmaler (setMinimumSize).

QGIS speichert die Mindestgröße nicht im Projekt; nach dem Neuladen schrumpfte die
Legende bei der nächsten Größenanpassung wieder (QGIS-Test: 43,7 mm). Deshalb vermerkt
das Layout die Mindestbreite (sn_legende_mindestbreite), und ein Listener auf readProject
setzt sie beim Laden wieder (setup/teardown_mindestbreiten_listener in main.py, wie der
Verfahrensgebiet-Listener).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Daniel merged commit d01b9998fb into unstable 2026-10-02 11:30:39 +00:00
Daniel deleted branch bugfix/96-legenden-spaltenbreite 2026-10-02 11:30:39 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: AG_QGIS/Plugin_SN_Basis#97