Der Basemap-Bereich im Druck-Tab bekommt einen Abschnitt „Basemap-Layer“ mit dem Knopf „Basemap hinzufügen“ und der Auswahl „Thema“ (Farbe, Grau; Standard Farbe). Ein vorhandener Layer wird an der identischen Kachel-URL erkannt (Rückfrage „Zusätzlich laden“ / „Ersetzen“ / „Abbrechen“), und vor einem Themenwechsel wird über einen Prüfwert erkannt, ob die Darstellung ungespeichert verändert wurde („Als Stil speichern …“ / „Verwerfen“ / „Abbrechen“). Issue: #100
Wie geprüft
python scripts/run_tests.py sn_basis --baseline: GRÜN 459/459, unverändert gegenüber Baseline (30 neue Tests in tests/test_basemap_themen.py)
sn_plan41: unverändert gegenüber Baseline. sn_verfahrensgebiet: 3 „NEU ROT“ und 8 „neu grün“ in verfahrensgebiet_alkis_komplett/verfahrensgebiet_shape_komplett – betrifft keinen geänderten Code, Baseline von Verfahrensgebiet ist gegenüber unstable verschoben
QGIS-Test (manuell, 05.10.2026, Daniel): die sechs Prüfschritte aus der Übergabenotiz durchgespielt, alles wie erwartet – Laden über styleUrl vollständig, Rückfrage bei vorhandenem Layer mit allen drei Wegen, Themenwechsel ohne Fehlalarm (Prüfwert stabil), Erkennung geänderter Darstellung samt „Als Stil speichern …“, Prüfwert nach Speichern und Neuladen des Projekts erhalten, Ziel-Layer bei zwei Basemap-Layern
Änderungen an Verträgen
Neue öffentliche Funktionen dialog_wrapper.ask_auswahl und qgisui_wrapper.get_active_layer (nur Ergänzungen, keine bestehende Signatur geändert)
Neue Layer-Eigenschaften sn_basemap_thema, sn_basemap_pruefwert; Stilvorlagen-JSON mit Feld thema
Dokumentiert in schnittstellen.md Abschnitt 11 (Projektwissen-Branch docs/100-basemap-themen)
Themen nur Farbe und Grau; Relief bleibt vorerst weg (braucht Höhenlinien-Kacheln und WMS-Schummerung als weitere Quellen).
Das Thema-Dropdown wirkt auf den im Layerbaum ausgewählten Basemap-Layer, sonst auf den ersten. Laden/Speichern von Stilen und „Punktlinien korrigieren“ nutzen jetzt dieselbe Regel (bei nur einem Basemap-Layer wie bisher).
„Ersetzen“ legt keinen neuen Layer an, sondern lädt den vorhandenen im gewählten Thema neu (setDataSource + loadDefaultStyle): Layer-ID, Position im Layerbaum und Bezüge in Layouts/Kartenthemen bleiben. Ein selbst vergebener Layername bleibt, der automatische („basemap.de - Farbe“) wird angepasst.
Ungespeicherte Änderungen: SHA-256 der QML (Symbologie + Beschriftung, ohne QGIS-Version) als Layer-Eigenschaft nach Laden eines Themas/Stils und nach Speichern als Stil. Ohne gemerkten Prüfwert (ältere Layer) wird vorsichtshalber nachgefragt.
Im QGIS-Test geprüft (05.10.2026, alles wie erwartet):
„Basemap hinzufügen“ ohne Basemap im Projekt: Layer erscheint ganz unten, Symbole und Beschriftung vollständig (Laden über styleUrl mit loadDefaultStyle()).
Zweites Mal klicken: Rückfrage nennt den Layer; „Zusätzlich laden“, „Ersetzen“, „Abbrechen“ durchspielen.
Thema auf „Grau“ und zurück: Darstellung wechselt, keine Rückfrage, solange nichts geändert wurde. Wichtigster Punkt: Wenn hier trotzdem „verändert“ gemeldet wird, ist die QML nicht stabil und der Prüfwert muss anders gebildet werden.
Hausnummern ausschalten, dann Thema wechseln: Rückfrage „verändert“; „Als Stil speichern …“ legt die Vorlage an (JSON mit "thema"), danach Wechsel.
Projekt speichern, neu öffnen, Thema wechseln: Prüfwert aus der Projektdatei wird erkannt (keine Rückfrage).
Zwei Basemap-Layer, einen davon im Layerbaum auswählen, Bereich auf- und zuklappen: Status und Dropdown zeigen den ausgewählten Layer.
Bekannte Grenze: Das Dropdown aktualisiert sich nicht von selbst, wenn im Layerbaum ein anderer Layer ausgewählt wird (erst beim Aufklappen oder nach einer Aktion). Der Wechsel selbst trifft immer den aktuell ausgewählten Layer. Eine Anbindung an iface.currentLayerChanged wäre ein kleines Folge-Issue.
Prüfwert-Aufwand: Jede Prüfung schreibt die rund 3,7 MB große QML einmal in eine temporäre Datei.
Folge-Issues:#101 (Import/Export der Stile; das Feld thema ist schon vorbereitet), P10 Vektor (Entwurf liegt vor), Relief.
Checkliste
Nur Änderungen zum Issue (plus gleiche Ziel-Layer-Regel für die bestehenden Stil-Knöpfe, siehe oben)
Keine direkten Qt/QGIS-Importe, keine Debug-print (nur die Fehlermeldung in ask_auswahl wie bei den Nachbarfunktionen)
## Was
Der Basemap-Bereich im Druck-Tab bekommt einen Abschnitt „Basemap-Layer“ mit dem Knopf „Basemap hinzufügen“ und der Auswahl „Thema“ (Farbe, Grau; Standard Farbe). Ein vorhandener Layer wird an der identischen Kachel-URL erkannt (Rückfrage „Zusätzlich laden“ / „Ersetzen“ / „Abbrechen“), und vor einem Themenwechsel wird über einen Prüfwert erkannt, ob die Darstellung ungespeichert verändert wurde („Als Stil speichern …“ / „Verwerfen“ / „Abbrechen“). Issue: #100
## Wie geprüft
- `python scripts/run_tests.py sn_basis --baseline`: GRÜN 459/459, unverändert gegenüber Baseline (30 neue Tests in `tests/test_basemap_themen.py`)
- `sn_plan41`: unverändert gegenüber Baseline. `sn_verfahrensgebiet`: 3 „NEU ROT“ und 8 „neu grün“ in `verfahrensgebiet_alkis_komplett`/`verfahrensgebiet_shape_komplett` – betrifft keinen geänderten Code, Baseline von Verfahrensgebiet ist gegenüber `unstable` verschoben
- QGIS-Test (manuell, 05.10.2026, Daniel): die sechs Prüfschritte aus der Übergabenotiz durchgespielt, alles wie erwartet – Laden über `styleUrl` vollständig, Rückfrage bei vorhandenem Layer mit allen drei Wegen, Themenwechsel ohne Fehlalarm (Prüfwert stabil), Erkennung geänderter Darstellung samt „Als Stil speichern …“, Prüfwert nach Speichern und Neuladen des Projekts erhalten, Ziel-Layer bei zwei Basemap-Layern
## Änderungen an Verträgen
- Neue öffentliche Funktionen `dialog_wrapper.ask_auswahl` und `qgisui_wrapper.get_active_layer` (nur Ergänzungen, keine bestehende Signatur geändert)
- Neue Layer-Eigenschaften `sn_basemap_thema`, `sn_basemap_pruefwert`; Stilvorlagen-JSON mit Feld `thema`
- Dokumentiert in `schnittstellen.md` Abschnitt 11 (Projektwissen-Branch `docs/100-basemap-themen`)
## Übergabenotiz
**Stand:** fertig, QGIS-Test bestanden. Branch `feature/100-basemap-themen` (1 Commit), Doku auf `Projektwissen:docs/100-basemap-themen`.
**Entscheidungen (mit Daniel am 05.10.2026 abgestimmt):**
- Begriffe: *Thema* = Style-JSON des Dienstes, *Stil* = lokale Anpassung (Stilvorlage). Im Glossar eingetragen.
- „Schon vorhanden“ = identische Kachel-URL (alle Themen teilen sie, daher themenunabhängig).
- Themen nur Farbe und Grau; Relief bleibt vorerst weg (braucht Höhenlinien-Kacheln und WMS-Schummerung als weitere Quellen).
- Das Thema-Dropdown wirkt auf den im Layerbaum ausgewählten Basemap-Layer, sonst auf den ersten. Laden/Speichern von Stilen und „Punktlinien korrigieren“ nutzen jetzt dieselbe Regel (bei nur einem Basemap-Layer wie bisher).
- „Ersetzen“ legt keinen neuen Layer an, sondern lädt den vorhandenen im gewählten Thema neu (`setDataSource` + `loadDefaultStyle`): Layer-ID, Position im Layerbaum und Bezüge in Layouts/Kartenthemen bleiben. Ein selbst vergebener Layername bleibt, der automatische („basemap.de - Farbe“) wird angepasst.
- Ungespeicherte Änderungen: SHA-256 der QML (Symbologie + Beschriftung, ohne QGIS-Version) als Layer-Eigenschaft nach Laden eines Themas/Stils und nach Speichern als Stil. Ohne gemerkten Prüfwert (ältere Layer) wird vorsichtshalber nachgefragt.
**Im QGIS-Test geprüft (05.10.2026, alles wie erwartet):**
1. „Basemap hinzufügen“ ohne Basemap im Projekt: Layer erscheint ganz unten, Symbole und Beschriftung vollständig (Laden über `styleUrl` mit `loadDefaultStyle()`).
2. Zweites Mal klicken: Rückfrage nennt den Layer; „Zusätzlich laden“, „Ersetzen“, „Abbrechen“ durchspielen.
3. Thema auf „Grau“ und zurück: Darstellung wechselt, keine Rückfrage, solange nichts geändert wurde. **Wichtigster Punkt:** Wenn hier trotzdem „verändert“ gemeldet wird, ist die QML nicht stabil und der Prüfwert muss anders gebildet werden.
4. Hausnummern ausschalten, dann Thema wechseln: Rückfrage „verändert“; „Als Stil speichern …“ legt die Vorlage an (JSON mit `"thema"`), danach Wechsel.
5. Projekt speichern, neu öffnen, Thema wechseln: Prüfwert aus der Projektdatei wird erkannt (keine Rückfrage).
6. Zwei Basemap-Layer, einen davon im Layerbaum auswählen, Bereich auf- und zuklappen: Status und Dropdown zeigen den ausgewählten Layer.
**Bekannte Grenze:** Das Dropdown aktualisiert sich nicht von selbst, wenn im Layerbaum ein anderer Layer ausgewählt wird (erst beim Aufklappen oder nach einer Aktion). Der Wechsel selbst trifft immer den aktuell ausgewählten Layer. Eine Anbindung an `iface.currentLayerChanged` wäre ein kleines Folge-Issue.
**Prüfwert-Aufwand:** Jede Prüfung schreibt die rund 3,7 MB große QML einmal in eine temporäre Datei.
**Folge-Issues:** #101 (Import/Export der Stile; das Feld `thema` ist schon vorbereitet), P10 Vektor (Entwurf liegt vor), Relief.
## Checkliste
- [x] Nur Änderungen zum Issue (plus gleiche Ziel-Layer-Regel für die bestehenden Stil-Knöpfe, siehe oben)
- [x] Keine direkten Qt/QGIS-Importe, keine Debug-`print` (nur die Fehlermeldung in `ask_auswahl` wie bei den Nachbarfunktionen)
- [x] `changelog.txt` ergänzt
- [x] Wissensbasis nachgezogen (schnittstellen, fallstricke, glossar, modulkarte, STATUS, Testkatalog)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Neuer Abschnitt „Basemap-Layer“ im Basemap-Bereich des Druck-Tabs: Knopf
„Basemap hinzufügen“ und Auswahl „Thema“ (Farbe, Grau). Vorhandene Layer
werden an der Kachel-URL erkannt; Rückfrage Zusätzlich laden / Ersetzen /
Abbrechen. Vor dem Themenwechsel wird über einen Prüfwert der Darstellung
erkannt, ob sie ungespeichert verändert wurde.
Neues Modul modules/basemap_themen.py, neue Wrapper-Funktionen
ask_auswahl und get_active_layer, Stilvorlagen vermerken ihr Thema.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Daniel
merged commit 1aadef73bd into unstable2026-10-05 19:44:36 +00:00
Daniel
deleted branch feature/100-basemap-themen2026-10-05 19:44:36 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Was
Der Basemap-Bereich im Druck-Tab bekommt einen Abschnitt „Basemap-Layer“ mit dem Knopf „Basemap hinzufügen“ und der Auswahl „Thema“ (Farbe, Grau; Standard Farbe). Ein vorhandener Layer wird an der identischen Kachel-URL erkannt (Rückfrage „Zusätzlich laden“ / „Ersetzen“ / „Abbrechen“), und vor einem Themenwechsel wird über einen Prüfwert erkannt, ob die Darstellung ungespeichert verändert wurde („Als Stil speichern …“ / „Verwerfen“ / „Abbrechen“). Issue: #100
Wie geprüft
python scripts/run_tests.py sn_basis --baseline: GRÜN 459/459, unverändert gegenüber Baseline (30 neue Tests intests/test_basemap_themen.py)sn_plan41: unverändert gegenüber Baseline.sn_verfahrensgebiet: 3 „NEU ROT“ und 8 „neu grün“ inverfahrensgebiet_alkis_komplett/verfahrensgebiet_shape_komplett– betrifft keinen geänderten Code, Baseline von Verfahrensgebiet ist gegenüberunstableverschobenstyleUrlvollständig, Rückfrage bei vorhandenem Layer mit allen drei Wegen, Themenwechsel ohne Fehlalarm (Prüfwert stabil), Erkennung geänderter Darstellung samt „Als Stil speichern …“, Prüfwert nach Speichern und Neuladen des Projekts erhalten, Ziel-Layer bei zwei Basemap-LayernÄnderungen an Verträgen
dialog_wrapper.ask_auswahlundqgisui_wrapper.get_active_layer(nur Ergänzungen, keine bestehende Signatur geändert)sn_basemap_thema,sn_basemap_pruefwert; Stilvorlagen-JSON mit Feldthemaschnittstellen.mdAbschnitt 11 (Projektwissen-Branchdocs/100-basemap-themen)Übergabenotiz
Stand: fertig, QGIS-Test bestanden. Branch
feature/100-basemap-themen(1 Commit), Doku aufProjektwissen:docs/100-basemap-themen.Entscheidungen (mit Daniel am 05.10.2026 abgestimmt):
setDataSource+loadDefaultStyle): Layer-ID, Position im Layerbaum und Bezüge in Layouts/Kartenthemen bleiben. Ein selbst vergebener Layername bleibt, der automatische („basemap.de - Farbe“) wird angepasst.Im QGIS-Test geprüft (05.10.2026, alles wie erwartet):
styleUrlmitloadDefaultStyle())."thema"), danach Wechsel.Bekannte Grenze: Das Dropdown aktualisiert sich nicht von selbst, wenn im Layerbaum ein anderer Layer ausgewählt wird (erst beim Aufklappen oder nach einer Aktion). Der Wechsel selbst trifft immer den aktuell ausgewählten Layer. Eine Anbindung an
iface.currentLayerChangedwäre ein kleines Folge-Issue.Prüfwert-Aufwand: Jede Prüfung schreibt die rund 3,7 MB große QML einmal in eine temporäre Datei.
Folge-Issues: #101 (Import/Export der Stile; das Feld
themaist schon vorbereitet), P10 Vektor (Entwurf liegt vor), Relief.Checkliste
print(nur die Fehlermeldung inask_auswahlwie bei den Nachbarfunktionen)changelog.txtergänzt🤖 Generated with Claude Code