Files
Plugin_SN_Basis/main.py

43 lines
1.4 KiB
Python

# 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