53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
from qgis.utils import plugins
|
|
from sn_basis.ui.dockmanager import DockManager
|
|
from .ui.dockwidget import DockWidget
|
|
|
|
|
|
class Verfahrensgebiet:
|
|
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 basis and basis.ui:
|
|
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()
|
|
|
|
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 basis.ui:
|
|
# Action aus Menü und Toolbar entfernen
|
|
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 basis.ui:
|
|
basis.ui.set_active_plugin(self.action)
|