Basemap-Bereich im Druck-Tab mit lokalen Stilvorlagen (#88)

Einklappbarer Bereich „Basemap“: Auswertebereich (Verfahrensgebiet/Druckbereich),
Basemap-Legende beim Erstellen an/aus, „Basemap-Legende aktualisieren“ für
bestehende Vorlagen und Stilvorlagen des Basemap-Layers. Stilvorlagen liegen lokal im
QGIS-Profil (QML plus Begleitdatei mit Legendenauswahl), mehrere Varianten, eine als
Standard markierbar; geladen wird nur auf Knopfdruck nach Rückfrage, fremde Varianten
(andere Style-Namen) erst nach zweiter Bestätigung.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 11:57:10 +02:00
co-authored by Claude Opus 5.5
parent b549cb8a5a
commit f9241a11f9
7 changed files with 771 additions and 0 deletions
+13
View File
@@ -22,6 +22,7 @@ from sn_basis.functions.qgiscore_wrapper import QgsProject, QgsMapLayerProxyMode
from sn_basis.functions.qgisui_wrapper import iface, QgsMapLayerComboBox
from sn_basis.functions.variable_wrapper import get_variable, set_variable
from sn_basis.modules.Pruefmanager import Pruefmanager
from sn_basis.ui.widgets.basemap_bereich import BasemapBereich
from sn_basis.modules.DataGrabber import DataGrabber
from sn_basis.modules.print_logic import (
PrintLogic,
@@ -257,6 +258,10 @@ class PrintTab(QWidget):
self._atlas_content = atlas_content
main_layout.addWidget(atlas_content)
# Basemap-Bereich (einklappbar): Basemap-Legende und Stilvorlagen (Basis #88)
self._basemap_bereich = BasemapBereich(self)
main_layout.addWidget(self._basemap_bereich)
btn_vorlage_erstellen = QPushButton("Vorlage erstellen", self)
btn_vorlage_erstellen.clicked.connect(self._on_vorlage_erstellen)
self._btn_vorlage_erstellen = btn_vorlage_erstellen
@@ -445,6 +450,13 @@ class PrintTab(QWidget):
formfaktor=self._endlosrolle_cb.isChecked() if self._endlosrolle_cb else False,
druckbereich_auswahl=self._druckbereich_combo.currentText() if self._druckbereich_combo else DRUCKBEREICH_VERFAHRENSGEBIET,
)
self._basemap_bereich_aktualisieren()
def _basemap_bereich_aktualisieren(self) -> None:
"""Liest den Basemap-Bereich neu ein (neue Vorlage, Projektwechsel)."""
bereich = getattr(self, "_basemap_bereich", None)
if bereich is not None:
bereich.aktualisieren()
def _disconnect_project_signals(self) -> None:
try:
@@ -494,6 +506,7 @@ class PrintTab(QWidget):
self._theme_signal_connected = False
self._connect_theme_collection_signals()
self._restore_state()
self._basemap_bereich_aktualisieren()
def _toggle_atlas(self, checked: bool) -> None:
if self._atlas_button: