# 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 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 self.ui = Navigation(self.iface) # Alle Fachplugins mit "sn_" prüfen und neu initialisieren for name, plugin in plugins.items(): if name.startswith("sn_") and name != "sn_basis": try: 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: remove_all = getattr_safe(self.ui, "remove_all") if callable(remove_all): remove_all() self.ui = None