Files

53 lines
1.6 KiB
Python
Raw Permalink Normal View History

2025-11-17 10:06:13 +01:00
from qgis.utils import plugins
from sn_basis.ui.dockmanager import DockManager
from .ui.dockwidget import DockWidget
2025-11-17 11:29:50 +01:00
2025-11-17 10:06:13 +01:00
class Widmung:
def __init__(self, iface):
self.iface = iface
2025-11-17 11:29:50 +01:00
self.action = None
2025-11-17 10:06:13 +01:00
self.dockwidget = None
2025-11-17 11:29:50 +01:00
# Namen automatisch aus Klassennamen ableiten
self.plugin_name = self.__class__.__name__
self.dock_name = f"sn_dock_{self.plugin_name.lower()}"
2025-11-17 10:06:13 +01:00
def initGui(self):
basis = plugins.get("sn_basis")
if basis and basis.ui:
2025-11-17 11:29:50 +01:00
self.action = basis.ui.add_action(
self.plugin_name,
self.run,
tooltip=f"Öffnet {self.plugin_name}",
priority=30
)
2025-11-17 10:06:13 +01:00
basis.ui.finalize_menu_and_toolbar()
def unload(self):
if self.dockwidget:
self.iface.removeDockWidget(self.dockwidget)
self.dockwidget.deleteLater()
self.dockwidget = None
2025-11-17 12:23:26 +01:00
if self.action:
basis = plugins.get("sn_basis")
if basis and basis.ui:
2025-11-17 12:48:30 +01:00
# Action aus Menü und Toolbar entfernen
basis.ui.remove_action(self.action)
self.action = None
2025-11-17 12:23:26 +01:00
2025-11-17 10:06:13 +01:00
def run(self):
2025-11-17 11:29:50 +01:00
self.dockwidget = DockWidget(self.iface.mainWindow(), subtitle=self.plugin_name)
self.dockwidget.setObjectName(self.dock_name)
2025-11-17 12:23:26 +01:00
# Action-Referenz im Dock speichern
self.dockwidget.action = self.action
2025-11-17 10:06:13 +01:00
DockManager.show(self.dockwidget)
2025-11-17 12:23:26 +01:00
# Toolbar-Button als aktiv markieren
basis = plugins.get("sn_basis")
if basis and basis.ui:
basis.ui.set_active_plugin(self.action)