Files

60 lines
1.7 KiB
Python
Raw Permalink Normal View History

2026-01-08 17:13:43 +01:00
# sn_plan41/main.py
2025-10-09 11:35:45 +02:00
from qgis.utils import plugins
from sn_basis.ui.dockmanager import DockManager
2026-01-08 17:13:43 +01:00
from sn_plan41.ui.dockwidget import DockWidget
2025-10-09 11:35:45 +02:00
2025-11-17 11:29:40 +01:00
2025-10-09 11:35:45 +02:00
class Plan41:
def __init__(self, iface):
self.iface = iface
2025-11-17 11:29:40 +01:00
self.action = None
self.dockwidget = None
2025-10-09 11:35:45 +02:00
2025-11-17 11:29:40 +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:45 +02:00
def initGui(self):
basis = plugins.get("sn_basis")
2026-01-08 17:13:43 +01:00
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")
2025-10-09 11:35:45 +02:00
def unload(self):
if self.dockwidget:
self.iface.removeDockWidget(self.dockwidget)
self.dockwidget.deleteLater()
self.dockwidget = None
2025-10-09 11:35:45 +02:00
2025-11-17 12:23:19 +01:00
if self.action:
basis = plugins.get("sn_basis")
2026-01-08 17:13:43 +01:00
if basis and getattr(basis, "ui", None):
2025-11-17 12:48:26 +01:00
basis.ui.remove_action(self.action)
self.action = None
2025-11-17 12:23:19 +01:00
2025-10-09 11:35:45 +02:00
def run(self):
2026-01-08 17:13:43 +01:00
self.dockwidget = DockWidget(
self.iface.mainWindow(),
subtitle=self.plugin_name,
)
2025-11-17 11:29:40 +01:00
self.dockwidget.setObjectName(self.dock_name)
2025-11-17 12:23:19 +01:00
# Action-Referenz im Dock speichern
self.dockwidget.action = self.action
DockManager.show(self.dockwidget)
2025-11-17 12:23:19 +01:00
# Toolbar-Button als aktiv markieren
basis = plugins.get("sn_basis")
2026-01-08 17:13:43 +01:00
if basis and getattr(basis, "ui", None):
2025-11-17 12:23:19 +01:00
basis.ui.set_active_plugin(self.action)