# sn_plan41/main.py from qgis.utils import plugins from sn_basis.ui.dockmanager import DockManager from sn_plan41.ui.dockwidget import DockWidget class Plan41: def __init__(self, iface): self.iface = iface self.action = None self.dockwidget = None # Namen automatisch aus Klassennamen ableiten self.plugin_name = self.__class__.__name__ self.dock_name = f"sn_dock_{self.plugin_name.lower()}" def initGui(self): basis = plugins.get("sn_basis") if not basis or not getattr(basis, "ui", None): return self.action = basis.ui.add_action( self.plugin_name, self.run, tooltip=f"Öffnet {self.plugin_name}", priority=20, ) basis.ui.finalize_menu_and_toolbar() print("Plan41/sn_Basis:initGui called") def unload(self): if self.dockwidget: self.iface.removeDockWidget(self.dockwidget) self.dockwidget.deleteLater() self.dockwidget = None if self.action: basis = plugins.get("sn_basis") if basis and getattr(basis, "ui", None): basis.ui.remove_action(self.action) self.action = None def run(self): self.dockwidget = DockWidget( self.iface.mainWindow(), subtitle=self.plugin_name, ) self.dockwidget.setObjectName(self.dock_name) # Action-Referenz im Dock speichern self.dockwidget.action = self.action DockManager.show(self.dockwidget) # Toolbar-Button als aktiv markieren basis = plugins.get("sn_basis") if basis and getattr(basis, "ui", None): basis.ui.set_active_plugin(self.action)