Comboboxen Thema und Massstab hinzugefügt

This commit is contained in:
2026-03-20 10:11:42 +01:00
parent 6261b88fee
commit 5c00b4abee
2 changed files with 131 additions and 89 deletions

View File

@@ -2,50 +2,30 @@
sn_plan41/ui/tab_b_logic.py Fachlogik für Tab B (Druck)
"""
from __future__ import annotations
from sn_basis.functions.sys_wrapper import get_plugin_root, join_path, file_exists
from typing import Any, Dict, List, Optional
from collections.abc import Mapping as _Mapping
import os
import datetime
import json
import tempfile
from sn_basis.functions.qgiscore_wrapper import (
QgsVectorFileWriter,
QgsVectorLayer,
QgsProject,
QgsGeometry,
QgsFeature,
QgsField,
QgsFeatureRequest,
QgsCoordinateReferenceSystem,
)
from sn_basis.functions.variable_wrapper import (
get_variable,
set_variable,
)
from sn_basis.functions.ly_existence_wrapper import layer_exists
from sn_basis.functions.ly_metadata_wrapper import get_layer_type
from sn_basis.functions.qt_wrapper import QVariant
from sn_basis.functions.dialog_wrapper import create_progress_dialog
from sn_basis.functions.message_wrapper import info, warning, error
# Prüfer-Typen
from sn_basis.functions.variable_wrapper import set_variable
from sn_basis.modules.Pruefmanager import Pruefmanager
from sn_basis.modules.linkpruefer import Linkpruefer
from sn_basis.modules.stilpruefer import Stilpruefer
from sn_basis.modules.Dateipruefer import Dateipruefer
from sn_basis.modules.layerpruefer import Layerpruefer
from sn_basis.modules.LayerLoader import LayerLoader
from sn_basis.modules.Datenschreiber import Datenschreiber
from sn_basis.modules.pruef_ergebnis import pruef_ergebnis
from sn_basis.modules.DataGrabber import DataGrabber, SourceType, SourceDict
from sn_basis.modules.Datenabruf import Datenabruf
KARTENNAME_VAR = "sn_kartenname"
PLOTMASSSTAB_VAR = "sn_plotmassstab"
THEMA_38 = "§38"
THEMA_41 = "§41"
MASSSTAB_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)",
}
PLOTMASSSTAB_BY_AUSWAHL = {
"1:5.000": "5000",
"1:10.000": "10000",
"1:15.000": "15000",
"1:20.000": "20000",
"1:25.000": "25000",
"1:50.000": "50000",
"1:100.000": "100000",
}
class TabBLogic:
"""
@@ -54,4 +34,21 @@ 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, "")
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."""
if auswahl == MASSSTAB_WIE_KARTENFENSTER:
if aktueller_massstab and aktueller_massstab > 0:
set_variable(PLOTMASSSTAB_VAR, str(int(round(aktueller_massstab))), scope="project")
else:
set_variable(PLOTMASSSTAB_VAR, "", scope="project")
return
value = PLOTMASSSTAB_BY_AUSWAHL.get(auswahl, "")
set_variable(PLOTMASSSTAB_VAR, value, scope="project")