Files
Plugin_SN_Verfahrensgebiet/main.py

52 lines
1.6 KiB
Python
Raw Normal View History

2025-10-09 11:35:08 +02:00
from qgis.utils import plugins
from sn_basis.ui.dockmanager import DockManager
from .ui.dockwidget import DockWidget
2025-10-09 11:35:08 +02:00
2025-11-17 11:29:25 +01:00
2025-10-09 11:35:08 +02:00
class Verfahrensgebiet:
def __init__(self, iface):
self.iface = iface
2025-11-17 11:29:25 +01:00
self.action = None
self.dockwidget = None
2025-10-09 11:35:08 +02:00
2025-11-17 11:29:25 +01:00
# Namen automatisch aus Klassennamen ableiten
self.plugin_name = self.__class__.__name__
self.dock_name = f"sn_dock_{self.plugin_name.lower()}"
2025-10-09 11:35:08 +02:00
def initGui(self):
basis = plugins.get("sn_basis")
if basis and basis.ui:
2025-11-17 11:29:25 +01:00
self.action = basis.ui.add_action(
self.plugin_name,
self.run,
tooltip=f"Öffnet {self.plugin_name}",
priority=10
)
basis.ui.finalize_menu_and_toolbar()
2025-10-09 11:35:08 +02:00
def unload(self):
if self.dockwidget:
self.iface.removeDockWidget(self.dockwidget)
self.dockwidget.deleteLater()
self.dockwidget = None
2025-10-09 11:35:08 +02:00
2025-11-17 12:23:11 +01:00
# Action zurücksetzen, falls vorhanden
if self.action:
basis = plugins.get("sn_basis")
if basis and basis.ui:
basis.ui.set_active_plugin(None)
2025-10-09 11:35:08 +02:00
def run(self):
2025-11-17 11:29:25 +01:00
self.dockwidget = DockWidget(self.iface.mainWindow(), subtitle=self.plugin_name)
self.dockwidget.setObjectName(self.dock_name)
2025-11-17 12:23:11 +01:00
# Action-Referenz im Dock speichern
self.dockwidget.action = self.action
DockManager.show(self.dockwidget)
2025-11-17 12:23:11 +01:00
# Toolbar-Button als aktiv markieren
basis = plugins.get("sn_basis")
if basis and basis.ui:
basis.ui.set_active_plugin(self.action)