refactor/layout.py #15
+851
-91
File diff suppressed because it is too large
Load Diff
+11
-11
@@ -22,11 +22,11 @@ from sn_basis.modules.layerpruefer import Layerpruefer
|
||||
from sn_plan41.ui.layout import Layout
|
||||
|
||||
|
||||
KARTENNAME_VAR = "sn_kartenname"
|
||||
PLOTMASSSTAB_VAR = "sn_plotmassstab"
|
||||
VIEW_VAR = "sn_view"
|
||||
ZIELGROESSE_VAR = "sn_zielgroesse"
|
||||
FORMFAKTOR_VAR = "sn_formfaktor"
|
||||
KARTENNAME_VAR = "kartenname"
|
||||
PLOTMASSSTAB_VAR = "plotmassstab"
|
||||
VIEW_VAR = "view"
|
||||
ZIELGROESSE_VAR = "zielgroesse"
|
||||
FORMFAKTOR_VAR = "formfaktor"
|
||||
KARTENNAME_38 = "§38"
|
||||
KARTENNAME_41 = "§41"
|
||||
MASSSTAB_WIE_KARTENFENSTER = "Wie Kartenfenster"
|
||||
@@ -287,12 +287,12 @@ class TabBLogic:
|
||||
return loaded_layer
|
||||
|
||||
def set_kartenname_for_auswahl(self, auswahl: str) -> None:
|
||||
"""Setzt die Projektvariable ``sn_kartenname`` anhand der Kartennamen-Auswahl."""
|
||||
"""Setzt die Projektvariable ``kartenname`` anhand der Kartennamen-Auswahl."""
|
||||
kartenname = KARTENNAME_BY_AUSWAHL.get(auswahl, "")
|
||||
set_variable(KARTENNAME_VAR, kartenname, scope="project")
|
||||
|
||||
def set_plotmassstab_for_auswahl(self, auswahl: str, aktueller_massstab: float | None = None) -> None:
|
||||
"""Setzt die Projektvariable ``sn_plotmassstab`` anhand der Maßstabsauswahl."""
|
||||
"""Setzt die Projektvariable ``plotmassstab`` anhand der Maßstabsauswahl."""
|
||||
if auswahl == MASSSTAB_WIE_KARTENFENSTER:
|
||||
if aktueller_massstab and aktueller_massstab > 0:
|
||||
set_variable(PLOTMASSSTAB_VAR, str(int(round(aktueller_massstab))), scope="project")
|
||||
@@ -304,7 +304,7 @@ class TabBLogic:
|
||||
set_variable(PLOTMASSSTAB_VAR, value, scope="project")
|
||||
|
||||
def set_view_for_auswahl(self, auswahl: str) -> None:
|
||||
"""Setzt ``sn_view`` auf ``aktuell`` oder den Namen des gewählten Layerthemas."""
|
||||
"""Setzt die Projektvariable ``view`` auf ``aktuell`` oder den Namen des gewählten Layerthemas."""
|
||||
if auswahl == THEMA_WIE_KARTENFENSTER:
|
||||
set_variable(VIEW_VAR, "aktuell", scope="project")
|
||||
return
|
||||
@@ -312,11 +312,11 @@ class TabBLogic:
|
||||
set_variable(VIEW_VAR, auswahl or "", scope="project")
|
||||
|
||||
def set_zielgroesse_for_auswahl(self, auswahl: str) -> None:
|
||||
"""Setzt ``sn_zielgroesse`` auf den gewählten DIN-Namen."""
|
||||
"""Setzt ``zielgroesse`` auf den gewählten DIN-Namen."""
|
||||
set_variable(ZIELGROESSE_VAR, auswahl if auswahl in DIN_GROESSEN else DIN_STANDARD, scope="project")
|
||||
|
||||
def set_formfaktor(self, endlosrolle: bool) -> None:
|
||||
"""Setzt ``sn_formfaktor`` auf ``Endlosrolle`` oder ``Blatt``."""
|
||||
"""Setzt die Projektvariable ``formfaktor`` auf ``Endlosrolle`` oder ``Blatt``."""
|
||||
set_variable(FORMFAKTOR_VAR, "Endlosrolle" if endlosrolle else "Blatt", scope="project")
|
||||
|
||||
# ─────────────────────────────────────────────────────────────────────────
|
||||
@@ -358,7 +358,7 @@ class TabBLogic:
|
||||
return {"ok": False, "switch_to_tab_a": True, "atlas_seiten": 0}
|
||||
|
||||
layer_id = getattr(layer, "id", lambda: "")() or ""
|
||||
set_variable("sn_verfahrensgebietslayer", layer_id, scope="project")
|
||||
set_variable("verfahrensgebietslayer", layer_id, scope="project")
|
||||
|
||||
# ─── 2. Kartenname prüfen ─────────────────────────────────────────
|
||||
if kartenname_auswahl not in (KARTENNAME_38, KARTENNAME_41):
|
||||
|
||||
+20
-15
@@ -206,7 +206,7 @@ class TabB(QWidget):
|
||||
self._endlosrolle_cb.setChecked(saved_formfaktor == "Endlosrolle")
|
||||
|
||||
def _on_kartenname_changed(self, value: str) -> None:
|
||||
"""Persistiert die Kartennamen-Auswahl und setzt ``sn_kartenname``."""
|
||||
"""Persistiert die Kartennamen-Auswahl und setzt ``kartenname``."""
|
||||
if value in (KARTENNAME_38, KARTENNAME_41):
|
||||
set_variable(KARTENNAME_VAR, value, scope="project")
|
||||
else:
|
||||
@@ -216,26 +216,26 @@ class TabB(QWidget):
|
||||
self.logic.set_kartenname_for_auswahl(value)
|
||||
|
||||
def _on_massstab_changed(self, value: str) -> None:
|
||||
"""Persistiert Maßstabsauswahl und setzt ``sn_plotmassstab``."""
|
||||
"""Persistiert Maßstabsauswahl und setzt ``plotmassstab``."""
|
||||
set_variable(MASSSTAB_VAR, value, scope="project")
|
||||
|
||||
if self.logic:
|
||||
self.logic.set_plotmassstab_for_auswahl(value, self._get_current_canvas_scale())
|
||||
|
||||
def _on_thema_changed(self, value: str) -> None:
|
||||
"""Persistiert die Thema-Auswahl und setzt ``sn_view``."""
|
||||
"""Persistiert die Thema-Auswahl und setzt ``view``."""
|
||||
set_variable(THEMA_VAR, value, scope="project")
|
||||
if self.logic:
|
||||
self.logic.set_view_for_auswahl(value)
|
||||
|
||||
def _on_zielgroesse_changed(self, value: str) -> None:
|
||||
"""Persistiert Blattgröße und setzt ``sn_zielgroesse``."""
|
||||
"""Persistiert Blattgröße und setzt ``zielgroesse``."""
|
||||
set_variable(ZIELGROESSE_UI_VAR, value, scope="project")
|
||||
if self.logic:
|
||||
self.logic.set_zielgroesse_for_auswahl(value)
|
||||
|
||||
def _on_formfaktor_changed(self, state: int) -> None:
|
||||
"""Persistiert Endlosrolle-Zustand und setzt ``sn_formfaktor``."""
|
||||
"""Persistiert Endlosrolle-Zustand und setzt ``formfaktor``."""
|
||||
checked = bool(state)
|
||||
set_variable(FORMFAKTOR_UI_VAR, "Endlosrolle" if checked else "Blatt", scope="project")
|
||||
if self.logic:
|
||||
@@ -335,17 +335,22 @@ class TabB(QWidget):
|
||||
def _disconnect_theme_collection_signals(self) -> None:
|
||||
"""Trennt Signale der alten Theme-Collection sauber."""
|
||||
collection = self._connected_theme_collection
|
||||
if collection is None:
|
||||
return
|
||||
for signal_name in ("mapThemesChanged", "changed", "themeChanged"):
|
||||
signal = getattr(collection, signal_name, None)
|
||||
if signal is None:
|
||||
continue
|
||||
try:
|
||||
signal.disconnect(self._refresh_thema_combo_live)
|
||||
except Exception:
|
||||
pass
|
||||
if collection is not None:
|
||||
for signal_name in ("mapThemesChanged", "changed", "themeChanged"):
|
||||
try:
|
||||
signal = getattr(collection, signal_name, None)
|
||||
except RuntimeError:
|
||||
break
|
||||
except Exception:
|
||||
continue
|
||||
if signal is None:
|
||||
continue
|
||||
try:
|
||||
signal.disconnect(self._refresh_thema_combo_live)
|
||||
except Exception:
|
||||
pass
|
||||
self._connected_theme_collection = None
|
||||
self._theme_signal_connected = False
|
||||
|
||||
def _connect_theme_collection_signals(self) -> None:
|
||||
"""Verbindet Signale der Theme-Collection für Live-Aktualisierung der Themenliste."""
|
||||
|
||||
Reference in New Issue
Block a user