forked from AG_QGIS/Plugin_SN_Basis
Auf Wrapper umgestellt, Prüfarchitektur QT6-kompatibel gemacht (Nicht lauffähig)
This commit is contained in:
24
main.py
24
main.py
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user