Files
Plugin_SN_Verfahrensgebiet/main.py

64 lines
2.0 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
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-11-18 16:10:58 +01:00
def _basis(self):
return plugins.get("sn_basis")
2025-10-09 11:35:08 +02:00
def initGui(self):
2025-11-18 16:10:58 +01:00
basis = self._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
if self.action:
2025-11-18 16:10:58 +01:00
basis = self._basis()
2025-11-17 12:23:11 +01:00
if basis and basis.ui:
2025-11-17 12:48:22 +01:00
basis.ui.remove_action(self.action)
self.action = None
2025-11-17 12:23:11 +01:00
2025-11-18 16:10:58 +01:00
# def run(self):
# if not self.dockwidget:
# self.dockwidget = DockWidget(self.iface.mainWindow(), subtitle=self.plugin_name)
# self.dockwidget.setObjectName(self.dock_name)
# self.dockwidget.action = self.action
# DockManager.show(self.dockwidget)
# basis = self._basis()
# if basis and basis.ui:
# basis.ui.set_active_plugin(self.action)
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:
2025-11-18 16:10:58 +01:00
basis.ui.set_active_plugin(self.action)