exit_Crash_fix
Release Plugin / release (push) Successful in 4s

This commit is contained in:
2026-04-20 13:28:00 +02:00
parent d762f2d94f
commit 88761eab22
4 changed files with 94 additions and 24 deletions
+43
View File
@@ -171,3 +171,46 @@ def setup_verfahrensgebiet_listener() -> None:
except Exception:
pass
def teardown_verfahrensgebiet_listener() -> None:
"""
Trennt globale Event-Listener vom QgsProject-Singleton.
Diese Funktion ist idempotent und kann mehrfach aufgerufen werden.
"""
global _listener_installed
if not _listener_installed:
return
try:
project = QgsProject.instance()
if project is None:
return
try:
project.layersAdded.disconnect(_on_layers_added)
except Exception:
pass
try:
project.layerRemoved.disconnect(_on_layer_removed)
except Exception:
pass
for signal_name in ("readProject", "newProjectCreated", "cleared"):
signal = getattr(project, signal_name, None)
if signal is None:
continue
try:
signal.disconnect(_on_project_changed)
except Exception:
pass
except RuntimeError:
pass
except Exception:
pass
finally:
_listener_installed = False