From 8a5adb05f3ba54b00268e70de9b6f96c21413e0e Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 17 Nov 2025 11:29:25 +0100 Subject: [PATCH] =?UTF-8?q?Aufger=C3=A4umt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 26 ++++++++++++++------------ ui/dockwidget.py | 22 +++------------------- ui/tabs/tab_a.py | 2 ++ ui/tabs/tab_b.py | 2 ++ 4 files changed, 21 insertions(+), 31 deletions(-) diff --git a/main.py b/main.py index 1c8dcd4..18fa715 100644 --- a/main.py +++ b/main.py @@ -1,34 +1,36 @@ from qgis.utils import plugins -from qgis.PyQt.QtGui import QIcon -from sn_basis.ui.navigation import Navigation from sn_basis.ui.dockmanager import DockManager from .ui.dockwidget import DockWidget + class Verfahrensgebiet: def __init__(self, iface): self.iface = iface - self.ui = None + 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-Plugin muss geladen sein! basis = plugins.get("sn_basis") if basis and basis.ui: - self.action = basis.ui.add_action("Verfahrensgebiet", self.run, tooltip="Öffnet Verfahrensgebiet", priority=10) + 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.ui: - self.ui.remove_all() if self.dockwidget: self.iface.removeDockWidget(self.dockwidget) self.dockwidget.deleteLater() self.dockwidget = None def run(self): - from sn_verfahrensgebiet.ui.dockwidget import DockWidget - self.dockwidget = DockWidget(self.iface.mainWindow()) - self.dockwidget.setObjectName("sn_dock_verfahrensgebiet") + self.dockwidget = DockWidget(self.iface.mainWindow(), subtitle=self.plugin_name) + self.dockwidget.setObjectName(self.dock_name) DockManager.show(self.dockwidget) - - diff --git a/ui/dockwidget.py b/ui/dockwidget.py index efa2f38..8b89ead 100644 --- a/ui/dockwidget.py +++ b/ui/dockwidget.py @@ -1,24 +1,8 @@ -from qgis.PyQt.QtWidgets import QDockWidget, QTabWidget, QWidget, QVBoxLayout, QLabel from sn_basis.ui.tabs.settings_tab import SettingsTab from sn_verfahrensgebiet.ui.tabs.tab_a import TabA from sn_verfahrensgebiet.ui.tabs.tab_b import TabB +from sn_basis.ui.base_dockwidget import BaseDockWidget -class DockWidget(QDockWidget): - def __init__(self, parent=None): - super().__init__(parent) - self.setWindowTitle("LNO Sachsen | Verfahrensgebiet") - # TabWidget erzeugen - tabs = QTabWidget() - - # Tab A - tabs.addTab(TabA(), "Tab A") - - # Tab B - tabs.addTab(TabB(), "Tab B") - - # Gemeinsamer Tab - tabs.addTab(SettingsTab(), "Projekteigenschaften") - - # TabWidget ins Dock setzen - self.setWidget(tabs) +class DockWidget(BaseDockWidget): + tabs = [TabA, TabB, SettingsTab] diff --git a/ui/tabs/tab_a.py b/ui/tabs/tab_a.py index 3321207..eb55762 100644 --- a/ui/tabs/tab_a.py +++ b/ui/tabs/tab_a.py @@ -1,6 +1,8 @@ from qgis.PyQt.QtWidgets import QWidget, QVBoxLayout, QLabel, QLineEdit class TabA(QWidget): + tab_title = "Tab A" + def __init__(self, parent=None): super().__init__(parent) layout = QVBoxLayout() diff --git a/ui/tabs/tab_b.py b/ui/tabs/tab_b.py index 0a97ca3..9d5d608 100644 --- a/ui/tabs/tab_b.py +++ b/ui/tabs/tab_b.py @@ -1,6 +1,8 @@ from qgis.PyQt.QtWidgets import QWidget, QVBoxLayout, QLabel, QTextEdit class TabB(QWidget): + tab_title = "Tab B" + def __init__(self, parent=None): super().__init__(parent) layout = QVBoxLayout()