forked from AG_QGIS/Plugin_SN_Basis
Wrappe modular aufgebaut, Tests erfolgreich, Menüleiste und Werzeugleiste werden eingetragen (QT6 und QT5)- (Es fehlen noch Fachplugins, um zu prüfen, ob es auch wirklich in QGIS geht)
This commit is contained in:
29
main.py
29
main.py
@@ -1,13 +1,20 @@
|
||||
# sn_basis/main.py
|
||||
|
||||
from sn_basis.functions.qgisqt_wrapper import QCoreApplication, getattr_safe
|
||||
from qgis.utils import plugins
|
||||
|
||||
from sn_basis.functions.qt_wrapper import QCoreApplication
|
||||
from sn_basis.functions.sys_wrapper import getattr_safe
|
||||
from sn_basis.ui.navigation import Navigation
|
||||
|
||||
|
||||
class BasisPlugin:
|
||||
"""
|
||||
Einstiegspunkt des sn_basis-Plugins.
|
||||
Orchestriert UI und Fachmodule – keine UI-Logik.
|
||||
"""
|
||||
|
||||
def __init__(self, iface):
|
||||
self.iface = iface
|
||||
# iface wird von QGIS übergeben, aber nicht direkt verwendet
|
||||
self.ui = None
|
||||
|
||||
# QCoreApplication kann im Mock-Modus None sein
|
||||
@@ -21,10 +28,12 @@ class BasisPlugin:
|
||||
connect(self.unload)
|
||||
|
||||
def initGui(self):
|
||||
# Basis-Navigation neu aufbauen
|
||||
self.ui = Navigation(self.iface)
|
||||
|
||||
# Alle Fachplugins mit "sn_" prüfen und neu initialisieren
|
||||
"""
|
||||
Initialisiert die Basis-Navigation und triggert initGui
|
||||
aller abhängigen sn_-Plugins.
|
||||
"""
|
||||
self.ui = Navigation()
|
||||
self.ui.init_ui()
|
||||
for name, plugin in plugins.items():
|
||||
if name.startswith("sn_") and name != "sn_basis":
|
||||
try:
|
||||
@@ -33,10 +42,12 @@ class BasisPlugin:
|
||||
init_gui()
|
||||
except Exception as e:
|
||||
print(f"Fehler beim Neuinitialisieren von {name}: {e}")
|
||||
self.ui.finalize_menu_and_toolbar()
|
||||
|
||||
def unload(self):
|
||||
"""
|
||||
Räumt UI-Komponenten sauber auf.
|
||||
"""
|
||||
if self.ui:
|
||||
remove_all = getattr_safe(self.ui, "remove_all")
|
||||
if callable(remove_all):
|
||||
remove_all()
|
||||
self.ui.remove_all()
|
||||
self.ui = None
|
||||
|
||||
Reference in New Issue
Block a user