forked from AG_QGIS/Plugin_SN_Basis
Fehler beim Entladen / Update behoben.
This commit is contained in:
11
main.py
11
main.py
@@ -1,4 +1,5 @@
|
||||
from qgis.PyQt.QtCore import QCoreApplication
|
||||
from qgis.utils import plugins
|
||||
from sn_basis.ui.navigation import Navigation
|
||||
|
||||
class BasisPlugin:
|
||||
@@ -8,8 +9,18 @@ class BasisPlugin:
|
||||
QCoreApplication.instance().aboutToQuit.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:
|
||||
plugin.initGui()
|
||||
except Exception as e:
|
||||
print(f"Fehler beim Neuinitialisieren von {name}: {e}")
|
||||
|
||||
def unload(self):
|
||||
if self.ui:
|
||||
self.ui.remove_all()
|
||||
self.ui = None
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name=LNO Sachsen | Basisfunktionen
|
||||
qgisMinimumVersion=3.0
|
||||
description=Plugin mit Basisfunktionen
|
||||
version=25.11.1
|
||||
version=25.11.3
|
||||
author=Michael Otto
|
||||
email=michael.otto@landkreis-mittelsachsen.de
|
||||
about=Plugin mit Basisfunktionen
|
||||
|
||||
@@ -47,4 +47,36 @@ class Navigation:
|
||||
# Alle zurücksetzen, dann aktives Plugin markieren
|
||||
for _, action in self.actions:
|
||||
action.setChecked(False)
|
||||
if active_action:
|
||||
active_action.setChecked(True)
|
||||
|
||||
def remove_all(self):
|
||||
"""Alles entfernen beim Entladen des Basisplugins"""
|
||||
# Menü entfernen
|
||||
if self.menu:
|
||||
self.iface.mainWindow().menuBar().removeAction(self.menu.menuAction())
|
||||
self.menu = None
|
||||
|
||||
# Toolbar entfernen
|
||||
if self.toolbar:
|
||||
self.iface.mainWindow().removeToolBar(self.toolbar)
|
||||
self.toolbar = None
|
||||
|
||||
# Actions zurücksetzen
|
||||
self.actions.clear()
|
||||
|
||||
# Gruppe leeren
|
||||
self.plugin_group = None
|
||||
|
||||
def remove_action(self, action):
|
||||
"""Entfernt eine einzelne Action aus Menü und Toolbar"""
|
||||
if not action:
|
||||
return
|
||||
# Menüeintrag entfernen
|
||||
if self.menu:
|
||||
self.menu.removeAction(action)
|
||||
# Toolbar-Eintrag entfernen
|
||||
if self.toolbar:
|
||||
self.toolbar.removeAction(action)
|
||||
# Aus der internen Liste löschen
|
||||
self.actions = [(p, a) for p, a in self.actions if a != action]
|
||||
|
||||
Reference in New Issue
Block a user