Verfahrensgebiet-Layerauswahl nach sn_verfahrensgebiet verschoben
This commit is contained in:
@@ -94,59 +94,6 @@ class TestTabALogic(unittest.TestCase):
|
|||||||
# -----------------------------------------------------
|
# -----------------------------------------------------
|
||||||
# 6. Layer-ID speichern
|
# 6. Layer-ID speichern
|
||||||
# -----------------------------------------------------
|
# -----------------------------------------------------
|
||||||
def test_verfahrensgebiet_layer_id_storage(self):
|
|
||||||
logic = TabALogic()
|
|
||||||
|
|
||||||
class MockLayer:
|
|
||||||
def id(self):
|
|
||||||
return "layer-123"
|
|
||||||
|
|
||||||
logic.save_verfahrensgebiet_layer(MockLayer())
|
|
||||||
|
|
||||||
stored = get_variable("verfahrensgebiet_layer", scope="project")
|
|
||||||
self.assertEqual(stored, "layer-123")
|
|
||||||
|
|
||||||
# -----------------------------------------------------
|
|
||||||
# 7. Ungültiger Layer wird ignoriert
|
|
||||||
# -----------------------------------------------------
|
|
||||||
def test_invalid_layer_is_rejected(self):
|
|
||||||
logic = TabALogic()
|
|
||||||
|
|
||||||
class InvalidLayer:
|
|
||||||
pass
|
|
||||||
|
|
||||||
logic.save_verfahrensgebiet_layer(InvalidLayer())
|
|
||||||
|
|
||||||
stored = get_variable("verfahrensgebiet_layer", scope="project")
|
|
||||||
self.assertEqual(stored, "")
|
|
||||||
#-----------------------------------------------------
|
|
||||||
# 8. Layer-ID wirft Exception
|
|
||||||
#----------------------------------------------------
|
|
||||||
def test_layer_id_raises_exception(self):
|
|
||||||
logic = TabALogic()
|
|
||||||
|
|
||||||
class BadLayer:
|
|
||||||
def id(self):
|
|
||||||
raise RuntimeError("boom")
|
|
||||||
|
|
||||||
logic.save_verfahrensgebiet_layer(BadLayer())
|
|
||||||
|
|
||||||
stored = get_variable("verfahrensgebiet_layer", scope="project")
|
|
||||||
self.assertEqual(stored, "")
|
|
||||||
# -----------------------------------------------------
|
|
||||||
# 11. Layer ID wird leer zurückgegeben
|
|
||||||
# -----------------------------------------------------
|
|
||||||
def test_layer_id_returns_empty(self):
|
|
||||||
logic = TabALogic()
|
|
||||||
|
|
||||||
class EmptyLayer:
|
|
||||||
def id(self):
|
|
||||||
return ""
|
|
||||||
|
|
||||||
logic.save_verfahrensgebiet_layer(EmptyLayer())
|
|
||||||
|
|
||||||
stored = get_variable("verfahrensgebiet_layer", scope="project")
|
|
||||||
self.assertEqual(stored, "")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
@@ -155,12 +155,6 @@ class TabALogic:
|
|||||||
# -------------------------------
|
# -------------------------------
|
||||||
# Verfahrensgebiet-Layer
|
# Verfahrensgebiet-Layer
|
||||||
# -------------------------------
|
# -------------------------------
|
||||||
|
|
||||||
def save_verfahrensgebiet_layer(self, layer: QgsVectorLayer) -> None:
|
|
||||||
"""Speichert die Verfahrensgebiet-Layer-ID, unter Annahme, dass der Layer prevalidiert ist."""
|
|
||||||
layer_id = layer.id() if layer is not None else ""
|
|
||||||
set_variable("verfahrensgebiet_layer", layer_id or "", scope="project")
|
|
||||||
|
|
||||||
def load_verfahrensgebiet_layer_id(self) -> Optional[str]:
|
def load_verfahrensgebiet_layer_id(self) -> Optional[str]:
|
||||||
value = get_variable("verfahrensgebiet_layer", scope="project")
|
value = get_variable("verfahrensgebiet_layer", scope="project")
|
||||||
return value or None
|
return value or None
|
||||||
|
|||||||
+1
-45
@@ -166,16 +166,7 @@ class TabA(QWidget):
|
|||||||
self.optional_content.setVisible(False)
|
self.optional_content.setVisible(False)
|
||||||
main_layout.addWidget(self.optional_content)
|
main_layout.addWidget(self.optional_content)
|
||||||
|
|
||||||
# === LAYER-AUSWAHL + RAUMFILTER ===
|
# === RAUMFILTER ===
|
||||||
layer_label = QLabel("Verfahrensgebiet-Layer auswählen")
|
|
||||||
layer_label.setStyleSheet("font-weight: bold; margin-top: 6px;")
|
|
||||||
main_layout.addWidget(layer_label)
|
|
||||||
|
|
||||||
self.layer_combo = QgsMapLayerComboBox()
|
|
||||||
self.layer_combo.setFilters(QgsMapLayerProxyModel.VectorLayer)
|
|
||||||
self.layer_combo.layerChanged.connect(self._on_layer_changed)
|
|
||||||
main_layout.addWidget(self.layer_combo)
|
|
||||||
|
|
||||||
main_layout.addWidget(QLabel("Raumfilter"))
|
main_layout.addWidget(QLabel("Raumfilter"))
|
||||||
self._raumfilter_combo = QComboBox(self)
|
self._raumfilter_combo = QComboBox(self)
|
||||||
self._raumfilter_combo.setToolTip("Wählt die räumliche Bezugsfläche für die Datenextraktion.")
|
self._raumfilter_combo.setToolTip("Wählt die räumliche Bezugsfläche für die Datenextraktion.")
|
||||||
@@ -213,18 +204,6 @@ class TabA(QWidget):
|
|||||||
self.lokale_linkliste = link
|
self.lokale_linkliste = link
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# Layer
|
|
||||||
try:
|
|
||||||
layer_id = get_variable("tab_a_layer_id", scope="project")
|
|
||||||
if layer_id:
|
|
||||||
layer = QgsProject.instance().mapLayer(layer_id)
|
|
||||||
if layer and self.layer_combo:
|
|
||||||
self.layer_combo.setLayer(layer)
|
|
||||||
self._pufferlayer = layer
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Raumfilter (schon im _build_ui behandelt)
|
# Raumfilter (schon im _build_ui behandelt)
|
||||||
|
|
||||||
# === UI CALLBACKS ===
|
# === UI CALLBACKS ===
|
||||||
@@ -249,20 +228,6 @@ class TabA(QWidget):
|
|||||||
self.lokale_linkliste = path
|
self.lokale_linkliste = path
|
||||||
set_variable("tab_a_linkliste", path, scope="project")
|
set_variable("tab_a_linkliste", path, scope="project")
|
||||||
|
|
||||||
def _on_layer_changed(self, layer) -> None:
|
|
||||||
"""Persistiert Layer-Auswahl und registriert Verfahrensgebiet."""
|
|
||||||
self._pufferlayer = layer
|
|
||||||
|
|
||||||
if not layer:
|
|
||||||
return
|
|
||||||
|
|
||||||
# UI-State speichern
|
|
||||||
set_variable("tab_a_layer_id", layer.id(), scope="project")
|
|
||||||
|
|
||||||
# 🔹 NEU: Verfahrensgebiet explizit registrieren
|
|
||||||
if self.logic:
|
|
||||||
self.logic.save_verfahrensgebiet_layer(layer)
|
|
||||||
|
|
||||||
|
|
||||||
def _on_raumfilter_changed(self, value: str) -> None:
|
def _on_raumfilter_changed(self, value: str) -> None:
|
||||||
"""Persistieret Raumfilter-Auswahl."""
|
"""Persistieret Raumfilter-Auswahl."""
|
||||||
@@ -296,15 +261,6 @@ class TabA(QWidget):
|
|||||||
source = self.file_widget.filePath()
|
source = self.file_widget.filePath()
|
||||||
raumfilter = self._raumfilter_combo.currentText()
|
raumfilter = self._raumfilter_combo.currentText()
|
||||||
linkliste = self.linkliste_widget.filePath()
|
linkliste = self.linkliste_widget.filePath()
|
||||||
|
|
||||||
if self.logic and self.layer_combo:
|
|
||||||
layer = self.layer_combo.currentLayer()
|
|
||||||
else:
|
|
||||||
layer = None
|
|
||||||
|
|
||||||
if layer and layer.name() == "Verfahrensgebiet":
|
|
||||||
self.logic.save_verfahrensgebiet_layer(layer)
|
|
||||||
|
|
||||||
if self.logic:
|
if self.logic:
|
||||||
try:
|
try:
|
||||||
self.logic._on_run_pipeline(source, linkliste, raumfilter)
|
self.logic._on_run_pipeline(source, linkliste, raumfilter)
|
||||||
|
|||||||
Reference in New Issue
Block a user