diff --git a/ui/tab_b_logic.py b/ui/tab_b_logic.py index 6de350b..f927251 100644 --- a/ui/tab_b_logic.py +++ b/ui/tab_b_logic.py @@ -9,14 +9,14 @@ from sn_basis.modules.Pruefmanager import Pruefmanager KARTENNAME_VAR = "sn_kartenname" PLOTMASSSTAB_VAR = "sn_plotmassstab" VIEW_VAR = "sn_view" -THEMA_38 = "§38" -THEMA_41 = "§41" +KARTENNAME_38 = "§38" +KARTENNAME_41 = "§41" MASSSTAB_WIE_KARTENFENSTER = "Wie Kartenfenster" -ANSICHT_WIE_KARTENFENSTER = "wie kartenfenster" +THEMA_WIE_KARTENFENSTER = "wie kartenfenster" -KARTENNAME_BY_THEMA = { - THEMA_38: "Planungsübersicht §38 FlurbG", - THEMA_41: "Karte zum Plan über die gemeinschaftlichen und öffentlichen Anlagen (§ 41 FlurbG)", +KARTENNAME_BY_AUSWAHL = { + KARTENNAME_38: "Planungsübersicht §38 FlurbG", + KARTENNAME_41: "Karte zum Plan über die gemeinschaftlichen und öffentlichen Anlagen (§ 41 FlurbG)", } PLOTMASSSTAB_BY_AUSWAHL = { @@ -37,9 +37,9 @@ class TabBLogic: def __init__(self, pruefmanager: Pruefmanager) -> None: self.pruefmanager = pruefmanager - def set_kartenname_for_thema(self, thema: str) -> None: - """Setzt die Projektvariable ``sn_kartenname`` anhand des gewählten Druckthemas.""" - kartenname = KARTENNAME_BY_THEMA.get(thema, "") + def set_kartenname_for_auswahl(self, auswahl: str) -> None: + """Setzt die Projektvariable ``sn_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: @@ -55,8 +55,8 @@ 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 gewählten Layer/Themennamen.""" - if auswahl == ANSICHT_WIE_KARTENFENSTER: + """Setzt ``sn_view`` auf ``aktuell`` oder den Namen des gewählten Layerthemas.""" + if auswahl == THEMA_WIE_KARTENFENSTER: set_variable(VIEW_VAR, "aktuell", scope="project") return diff --git a/ui/tab_b_ui.py b/ui/tab_b_ui.py index da457ef..c434b3c 100644 --- a/ui/tab_b_ui.py +++ b/ui/tab_b_ui.py @@ -22,16 +22,16 @@ from sn_plan41.ui.tab_b_logic import ( TabBLogic, MASSSTAB_WIE_KARTENFENSTER, PLOTMASSSTAB_BY_AUSWAHL, - ANSICHT_WIE_KARTENFENSTER, + THEMA_WIE_KARTENFENSTER, ) -THEMA_VAR = "tab_b_thema" -THEMA_PLACEHOLDER = "Thema wählen" -THEMA_38 = "§38" -THEMA_41 = "§41" +KARTENNAME_VAR = "tab_b_kartenname" +KARTENNAME_PLACEHOLDER = "Kartenname wählen" +KARTENNAME_38 = "§38" +KARTENNAME_41 = "§41" MASSSTAB_VAR = "tab_b_massstab" -ANSICHT_VAR = "tab_b_ansicht" +THEMA_VAR = "tab_b_thema" class TabB(QWidget): """ @@ -62,9 +62,9 @@ class TabB(QWidget): self.pruefmanager: Optional[Pruefmanager] = None self.logic: Optional[TabBLogic] = None - self._thema_combo: Optional[QComboBox] = None + self._kartenname_combo: Optional[QComboBox] = None self._massstab_combo: Optional[QComboBox] = None - self._ansicht_combo: Optional[QComboBox] = None + self._thema_combo: Optional[QComboBox] = None self._theme_signal_connected = False self._connected_theme_collection: object = None # Referenz für sauberes Trennen @@ -80,15 +80,15 @@ class TabB(QWidget): self.pruefmanager = pruefmanager self.logic = TabBLogic(pruefmanager=self.pruefmanager) - if self._thema_combo: - self.logic.set_kartenname_for_thema(self._thema_combo.currentText()) + if self._kartenname_combo: + self.logic.set_kartenname_for_auswahl(self._kartenname_combo.currentText()) if self._massstab_combo: self.logic.set_plotmassstab_for_auswahl( self._massstab_combo.currentText(), self._get_current_canvas_scale(), ) - if self._ansicht_combo: - self.logic.set_view_for_auswahl(self._ansicht_combo.currentText()) + if self._thema_combo: + self.logic.set_view_for_auswahl(self._thema_combo.currentText()) def _build_ui(self) -> None: """Erstellt die reduzierte UI für die Themenauswahl.""" @@ -96,16 +96,16 @@ class TabB(QWidget): main_layout.setSpacing(4) main_layout.setContentsMargins(4, 4, 4, 4) - thema_label = QLabel("Thema") - thema_label.setStyleSheet("font-weight: bold; margin-top: 6px;") - main_layout.addWidget(thema_label) + kartenname_label = QLabel("Kartenname") + kartenname_label.setStyleSheet("font-weight: bold; margin-top: 6px;") + main_layout.addWidget(kartenname_label) - self._thema_combo = QComboBox(self) - self._thema_combo.addItem(THEMA_PLACEHOLDER) - self._thema_combo.addItem(THEMA_38) - self._thema_combo.addItem(THEMA_41) - self._thema_combo.currentTextChanged.connect(self._on_thema_changed) - main_layout.addWidget(self._thema_combo) + self._kartenname_combo = QComboBox(self) + self._kartenname_combo.addItem(KARTENNAME_PLACEHOLDER) + self._kartenname_combo.addItem(KARTENNAME_38) + self._kartenname_combo.addItem(KARTENNAME_41) + self._kartenname_combo.currentTextChanged.connect(self._on_kartenname_changed) + main_layout.addWidget(self._kartenname_combo) massstab_label = QLabel("Maßstab") massstab_label.setStyleSheet("font-weight: bold; margin-top: 6px;") @@ -117,29 +117,29 @@ class TabB(QWidget): self._massstab_combo.currentTextChanged.connect(self._on_massstab_changed) main_layout.addWidget(self._massstab_combo) - ansicht_label = QLabel("Ansicht") - ansicht_label.setStyleSheet("font-weight: bold; margin-top: 6px;") - main_layout.addWidget(ansicht_label) + thema_label = QLabel("Thema") + thema_label.setStyleSheet("font-weight: bold; margin-top: 6px;") + main_layout.addWidget(thema_label) - self._ansicht_combo = QComboBox(self) - self._ansicht_combo.addItem(ANSICHT_WIE_KARTENFENSTER) - self._ansicht_combo.addItems(self._get_gespeicherte_ansichten()) - self._ansicht_combo.currentTextChanged.connect(self._on_ansicht_changed) - main_layout.addWidget(self._ansicht_combo) + self._thema_combo = QComboBox(self) + self._thema_combo.addItem(THEMA_WIE_KARTENFENSTER) + self._thema_combo.addItems(self._get_gespeicherte_themen()) + self._thema_combo.currentTextChanged.connect(self._on_thema_changed) + main_layout.addWidget(self._thema_combo) main_layout.addStretch(1) self.setLayout(main_layout) def _restore_state(self) -> None: """Stellt die gespeicherten Combobox-Zustände wieder her.""" - if not self._thema_combo or not self._massstab_combo or not self._ansicht_combo: + if not self._kartenname_combo or not self._massstab_combo or not self._thema_combo: return - saved_thema = get_variable(THEMA_VAR, scope="project") - if saved_thema in (THEMA_38, THEMA_41): - self._thema_combo.setCurrentText(saved_thema) + saved_kartenname = get_variable(KARTENNAME_VAR, scope="project") + if saved_kartenname in (KARTENNAME_38, KARTENNAME_41): + self._kartenname_combo.setCurrentText(saved_kartenname) else: - self._thema_combo.setCurrentText(THEMA_PLACEHOLDER) + self._kartenname_combo.setCurrentText(KARTENNAME_PLACEHOLDER) saved_massstab = get_variable(MASSSTAB_VAR, scope="project") valid_massstaebe = [MASSSTAB_WIE_KARTENFENSTER, *PLOTMASSSTAB_BY_AUSWAHL.keys()] @@ -148,25 +148,25 @@ class TabB(QWidget): else: self._massstab_combo.setCurrentText(MASSSTAB_WIE_KARTENFENSTER) - aktuelle_themen = [ANSICHT_WIE_KARTENFENSTER, *self._get_gespeicherte_ansichten()] - self._ansicht_combo.clear() - self._ansicht_combo.addItems(aktuelle_themen) + aktuelle_themen = [THEMA_WIE_KARTENFENSTER, *self._get_gespeicherte_themen()] + self._thema_combo.clear() + self._thema_combo.addItems(aktuelle_themen) - saved_ansicht = get_variable(ANSICHT_VAR, scope="project") - if saved_ansicht in aktuelle_themen: - self._ansicht_combo.setCurrentText(saved_ansicht) + saved_thema = get_variable(THEMA_VAR, scope="project") + if saved_thema in aktuelle_themen: + self._thema_combo.setCurrentText(saved_thema) else: - self._ansicht_combo.setCurrentText(ANSICHT_WIE_KARTENFENSTER) + self._thema_combo.setCurrentText(THEMA_WIE_KARTENFENSTER) - def _on_thema_changed(self, value: str) -> None: - """Persistiert die Themenauswahl und setzt den Kartennamen.""" - if value in (THEMA_38, THEMA_41): - set_variable(THEMA_VAR, value, scope="project") + def _on_kartenname_changed(self, value: str) -> None: + """Persistiert die Kartennamen-Auswahl und setzt ``sn_kartenname``.""" + if value in (KARTENNAME_38, KARTENNAME_41): + set_variable(KARTENNAME_VAR, value, scope="project") else: - set_variable(THEMA_VAR, "", scope="project") + set_variable(KARTENNAME_VAR, "", scope="project") if self.logic: - self.logic.set_kartenname_for_thema(value) + self.logic.set_kartenname_for_auswahl(value) def _on_massstab_changed(self, value: str) -> None: """Persistiert Maßstabsauswahl und setzt ``sn_plotmassstab``.""" @@ -175,9 +175,9 @@ class TabB(QWidget): if self.logic: self.logic.set_plotmassstab_for_auswahl(value, self._get_current_canvas_scale()) - def _on_ansicht_changed(self, value: str) -> None: - """Persistiert die Ansichtsauswahl und setzt ``sn_view``.""" - set_variable(ANSICHT_VAR, value, scope="project") + def _on_thema_changed(self, value: str) -> None: + """Persistiert die Thema-Auswahl und setzt ``sn_view``.""" + set_variable(THEMA_VAR, value, scope="project") if self.logic: self.logic.set_view_for_auswahl(value) @@ -214,13 +214,13 @@ class TabB(QWidget): if signal is None: continue try: - signal.disconnect(self._refresh_ansicht_combo_live) + signal.disconnect(self._refresh_thema_combo_live) except Exception: pass self._connected_theme_collection = None def _connect_theme_collection_signals(self) -> None: - """Verbindet Signale der Theme-Collection für Live-Aktualisierung der Ansichtsliste.""" + """Verbindet Signale der Theme-Collection für Live-Aktualisierung der Themenliste.""" if self._theme_signal_connected: return @@ -238,7 +238,7 @@ class TabB(QWidget): if signal is None: continue try: - signal.connect(self._refresh_ansicht_combo_live) + signal.connect(self._refresh_thema_combo_live) connected_any = True except Exception: pass @@ -247,29 +247,29 @@ class TabB(QWidget): self._connected_theme_collection = theme_collection self._theme_signal_connected = connected_any - def _refresh_ansicht_combo_live(self, *args) -> None: - """Aktualisiert die Ansicht-Combobox bei Änderungen gespeicherter Layerthemen.""" + def _refresh_thema_combo_live(self, *args) -> None: + """Aktualisiert die Thema-Combobox bei Änderungen gespeicherter Layerthemen.""" _ = args - if not self._ansicht_combo: + if not self._thema_combo: return - vorherige_auswahl = self._ansicht_combo.currentText() or ANSICHT_WIE_KARTENFENSTER - eintraege = [ANSICHT_WIE_KARTENFENSTER, *self._get_gespeicherte_ansichten()] + vorherige_auswahl = self._thema_combo.currentText() or THEMA_WIE_KARTENFENSTER + eintraege = [THEMA_WIE_KARTENFENSTER, *self._get_gespeicherte_themen()] - self._ansicht_combo.blockSignals(True) - self._ansicht_combo.clear() - self._ansicht_combo.addItems(eintraege) + self._thema_combo.blockSignals(True) + self._thema_combo.clear() + self._thema_combo.addItems(eintraege) if vorherige_auswahl in eintraege: - self._ansicht_combo.setCurrentText(vorherige_auswahl) + self._thema_combo.setCurrentText(vorherige_auswahl) else: - self._ansicht_combo.setCurrentText(ANSICHT_WIE_KARTENFENSTER) - self._ansicht_combo.blockSignals(False) + self._thema_combo.setCurrentText(THEMA_WIE_KARTENFENSTER) + self._thema_combo.blockSignals(False) - self._on_ansicht_changed(self._ansicht_combo.currentText()) + self._on_thema_changed(self._thema_combo.currentText()) - def _get_gespeicherte_ansichten(self) -> list[str]: - """Liefert die Namen der im Projekt gespeicherten Layerthemen.""" + def _get_gespeicherte_themen(self) -> list[str]: + """Liefert die Namen der im Projekt gespeicherten Layerthemen (QgsMapThemeCollection).""" try: theme_collection = QgsProject.instance().mapThemeCollection() if theme_collection is None: