Auf Wrapper umgestellt, Prüfarchitektur QT6-kompatibel gemacht (Nicht lauffähig)

This commit is contained in:
2025-12-18 22:00:31 +01:00
parent f64d56d4bc
commit e8fea163b5
31 changed files with 2791 additions and 889 deletions

24
main.py
View File

@@ -1,12 +1,24 @@
from qgis.PyQt.QtCore import QCoreApplication
# sn_basis/main.py
from sn_basis.functions.qgisqt_wrapper import QCoreApplication, getattr_safe
from qgis.utils import plugins
from sn_basis.ui.navigation import Navigation
class BasisPlugin:
def __init__(self, iface):
self.iface = iface
self.ui = None
QCoreApplication.instance().aboutToQuit.connect(self.unload)
# QCoreApplication kann im Mock-Modus None sein
if QCoreApplication is not None:
app = getattr_safe(QCoreApplication, "instance")
if callable(app):
instance = app()
about_to_quit = getattr_safe(instance, "aboutToQuit")
connect = getattr_safe(about_to_quit, "connect")
if callable(connect):
connect(self.unload)
def initGui(self):
# Basis-Navigation neu aufbauen
@@ -16,11 +28,15 @@ class BasisPlugin:
for name, plugin in plugins.items():
if name.startswith("sn_") and name != "sn_basis":
try:
plugin.initGui()
init_gui = getattr_safe(plugin, "initGui")
if callable(init_gui):
init_gui()
except Exception as e:
print(f"Fehler beim Neuinitialisieren von {name}: {e}")
def unload(self):
if self.ui:
self.ui.remove_all()
remove_all = getattr_safe(self.ui, "remove_all")
if callable(remove_all):
remove_all()
self.ui = None