DataGrabber aktualisiert, grabberfunktionen aus dem Prototyp implementiert

This commit is contained in:
2026-02-14 22:14:33 +01:00
parent e6ffab1c10
commit f8be65f6f6
8 changed files with 1324 additions and 42 deletions

View File

@@ -8,6 +8,7 @@ from typing import Any, List, Type
from sn_basis.functions.qt_wrapper import QDockWidget
from sn_basis.functions.qgiscore_wrapper import QgsProject, QGIS_AVAILABLE
iface: Any
@@ -199,3 +200,48 @@ def remove_toolbar(toolbar: Any) -> None:
iface.removeToolBar(toolbar)
except Exception:
pass
# ---------------------------------------------------------
# Layer zum Projekt hinzufügen
# ---------------------------------------------------------
def add_layer_to_project(layer: Any) -> bool:
"""
Fügt einen Layer dem aktuellen QGIS-Projekt hinzu.
Diese Funktion kapselt den Zugriff auf ``QgsProject.instance().addMapLayer``
und dient als zentrale Abstraktion für alle Stellen, die Layer dynamisch
ins Projekt einfügen möchten (z.B. Pufferlayer im Datenabruf).
Verhalten
---------
- Wenn QGIS verfügbar ist und der Layer gültig ist, wird er dem Projekt
hinzugefügt und ``True`` zurückgegeben.
- Wenn QGIS nicht verfügbar ist oder der Layer ungültig ist, wird
``False`` zurückgegeben.
- Im Mock-Modus wird kein Layer hinzugefügt, aber ``True`` zurückgegeben,
damit Tests ohne QGIS nicht fehlschlagen.
Parameters
----------
layer:
Ein QGIS-Layer (typischerweise ``QgsVectorLayer``), der dem Projekt
hinzugefügt werden soll.
Returns
-------
bool
``True`` bei Erfolg oder im Mock-Modus, sonst ``False``.
"""
if layer is None:
return False
# Mock-Modus: Erfolg simulieren
if not QGIS_AVAILABLE:
return True
try:
project = QgsProject.instance()
project.addMapLayer(layer)
return True
except Exception:
return False