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.PyQt.QtCore import QCoreApplication
|
||||||
|
from qgis.utils import plugins
|
||||||
from sn_basis.ui.navigation import Navigation
|
from sn_basis.ui.navigation import Navigation
|
||||||
|
|
||||||
class BasisPlugin:
|
class BasisPlugin:
|
||||||
@@ -8,8 +9,18 @@ class BasisPlugin:
|
|||||||
QCoreApplication.instance().aboutToQuit.connect(self.unload)
|
QCoreApplication.instance().aboutToQuit.connect(self.unload)
|
||||||
|
|
||||||
def initGui(self):
|
def initGui(self):
|
||||||
|
# Basis-Navigation neu aufbauen
|
||||||
self.ui = Navigation(self.iface)
|
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):
|
def unload(self):
|
||||||
if self.ui:
|
if self.ui:
|
||||||
self.ui.remove_all()
|
self.ui.remove_all()
|
||||||
|
self.ui = None
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name=LNO Sachsen | Basisfunktionen
|
name=LNO Sachsen | Basisfunktionen
|
||||||
qgisMinimumVersion=3.0
|
qgisMinimumVersion=3.0
|
||||||
description=Plugin mit Basisfunktionen
|
description=Plugin mit Basisfunktionen
|
||||||
version=25.11.1
|
version=25.11.3
|
||||||
author=Michael Otto
|
author=Michael Otto
|
||||||
email=michael.otto@landkreis-mittelsachsen.de
|
email=michael.otto@landkreis-mittelsachsen.de
|
||||||
about=Plugin mit Basisfunktionen
|
about=Plugin mit Basisfunktionen
|
||||||
|
|||||||
@@ -47,4 +47,36 @@ class Navigation:
|
|||||||
# Alle zurücksetzen, dann aktives Plugin markieren
|
# Alle zurücksetzen, dann aktives Plugin markieren
|
||||||
for _, action in self.actions:
|
for _, action in self.actions:
|
||||||
action.setChecked(False)
|
action.setChecked(False)
|
||||||
active_action.setChecked(True)
|
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