DataGrabber aktualisiert, grabberfunktionen aus dem Prototyp implementiert
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user