Layouterzeugung ergänzt (nur Einzelblätter)
This commit is contained in:
@@ -243,31 +243,71 @@ class TabB(QWidget):
|
||||
|
||||
def _on_vorlage_erstellen(self) -> None:
|
||||
"""Startet die Pipeline Druckvorlage_anlegen."""
|
||||
print("[TabB] _on_vorlage_erstellen aufgerufen")
|
||||
if not self.logic or not self.pruefmanager:
|
||||
print(f"[TabB] Abbruch: logic={self.logic}, pruefmanager={self.pruefmanager}")
|
||||
return
|
||||
|
||||
# Layer direkt aus Tab A lesen (unabhängig von Projektvariable)
|
||||
layer = None
|
||||
tab_a = self._get_tab_a_widget()
|
||||
print(f"[TabB] tab_a Widget: {tab_a!r}")
|
||||
if tab_a is not None:
|
||||
layer_combo = getattr(tab_a, "layer_combo", None)
|
||||
print(f"[TabB] layer_combo: {layer_combo!r}")
|
||||
if layer_combo is not None:
|
||||
layer = layer_combo.currentLayer()
|
||||
print(f"[TabB] layer: {layer!r} (Name: {getattr(layer, 'name', lambda: '–')()})")
|
||||
|
||||
print(f"[TabB] Rufe druckvorlage_anlegen auf mit layer={layer!r}, "
|
||||
f"kartenname={self._kartenname_combo.currentText() if self._kartenname_combo else '?'}, "
|
||||
f"massstab={self._massstab_combo.currentText() if self._massstab_combo else '?'}, "
|
||||
f"zielgroesse={self._zielgroesse_combo.currentText() if self._zielgroesse_combo else '?'}, "
|
||||
f"formfaktor={self._endlosrolle_cb.isChecked() if self._endlosrolle_cb else '?'}")
|
||||
|
||||
result = self.logic.druckvorlage_anlegen(
|
||||
layer=layer,
|
||||
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,
|
||||
)
|
||||
|
||||
print(f"[TabB] druckvorlage_anlegen Ergebnis: {result}")
|
||||
if result.get("switch_to_tab_a"):
|
||||
self._aktiviere_tab_a()
|
||||
|
||||
def _aktiviere_tab_a(self) -> None:
|
||||
"""Wechselt zum Tab A im übergeordneten TabWidget."""
|
||||
def _get_tab_widget(self):
|
||||
"""Findet das übergeordnete QTabWidget anhand des ``tabBar``-Attributs."""
|
||||
try:
|
||||
widget = self.parent()
|
||||
while widget is not None:
|
||||
if hasattr(widget, "setCurrentIndex") and hasattr(widget, "count"):
|
||||
widget.setCurrentIndex(0)
|
||||
return
|
||||
if hasattr(widget, "tabBar") and hasattr(widget, "setCurrentIndex"):
|
||||
return widget
|
||||
parent_fn = getattr(widget, "parent", None)
|
||||
widget = parent_fn() if callable(parent_fn) else None
|
||||
except Exception:
|
||||
pass
|
||||
return None
|
||||
|
||||
def _get_tab_a_widget(self):
|
||||
"""Gibt die Tab-A-Widget-Instanz zurück (Index 0 im übergeordneten QTabWidget)."""
|
||||
tab_widget = self._get_tab_widget()
|
||||
if tab_widget is None:
|
||||
return None
|
||||
try:
|
||||
return tab_widget.widget(0)
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
def _aktiviere_tab_a(self) -> None:
|
||||
"""Wechselt den aktiven Reiter auf Tab A im übergeordneten QTabWidget."""
|
||||
tab_widget = self._get_tab_widget()
|
||||
if tab_widget is not None:
|
||||
try:
|
||||
tab_widget.setCurrentIndex(0)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def _connect_project_signals(self) -> None:
|
||||
"""Verbindet QgsProject-Signale für Projektwechsel/-neuladen."""
|
||||
|
||||
Reference in New Issue
Block a user