Vorlagen-Pipeline angelegt (Start bis Prüfung Atlas-Anzahl)

This commit is contained in:
2026-03-20 12:43:01 +01:00
parent ff5fd990bc
commit bfc9fae324
2 changed files with 163 additions and 3 deletions

View File

@@ -12,6 +12,7 @@ from sn_basis.functions.qt_wrapper import (
QComboBox,
QCheckBox,
QHBoxLayout,
QPushButton,
)
from sn_basis.functions.qgiscore_wrapper import QgsProject
from sn_basis.functions.qgisui_wrapper import iface
@@ -77,8 +78,8 @@ class TabB(QWidget):
self._connected_theme_collection: object = None # Referenz für sauberes Trennen
self._zielgroesse_combo: Optional[QComboBox] = None
self._endlosrolle_cb: Optional[QCheckBox] = None
self._btn_vorlage_erstellen: Optional[QPushButton] = None
self._build_ui()
self._restore_state()
self._connect_theme_collection_signals()
@@ -158,6 +159,10 @@ class TabB(QWidget):
zielgroesse_row.addWidget(self._endlosrolle_cb)
main_layout.addLayout(zielgroesse_row)
self._btn_vorlage_erstellen = QPushButton("Vorlage erstellen", self)
self._btn_vorlage_erstellen.clicked.connect(self._on_vorlage_erstellen)
main_layout.addWidget(self._btn_vorlage_erstellen)
main_layout.addStretch(1)
self.setLayout(main_layout)
@@ -236,6 +241,34 @@ class TabB(QWidget):
if self.logic:
self.logic.set_formfaktor(checked)
def _on_vorlage_erstellen(self) -> None:
"""Startet die Pipeline Druckvorlage_anlegen."""
if not self.logic or not self.pruefmanager:
return
result = self.logic.druckvorlage_anlegen(
kartenname_auswahl=self._kartenname_combo.currentText() if self._kartenname_combo else "",
massstab_auswahl=self._massstab_combo.currentText() if self._massstab_combo else "",
zielgroesse=self._zielgroesse_combo.currentText() if self._zielgroesse_combo else DIN_STANDARD,
formfaktor=self._endlosrolle_cb.isChecked() if self._endlosrolle_cb else False,
)
if result.get("switch_to_tab_a"):
self._aktiviere_tab_a()
def _aktiviere_tab_a(self) -> None:
"""Wechselt zum Tab A im übergeordneten TabWidget."""
try:
widget = self.parent()
while widget is not None:
if hasattr(widget, "setCurrentIndex") and hasattr(widget, "count"):
widget.setCurrentIndex(0)
return
parent_fn = getattr(widget, "parent", None)
widget = parent_fn() if callable(parent_fn) else None
except Exception:
pass
def _connect_project_signals(self) -> None:
"""Verbindet QgsProject-Signale für Projektwechsel/-neuladen."""
project = QgsProject.instance()