From 71f6faf9158630578d93580c2405356d0a915760 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 17 Nov 2025 11:29:40 +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 | 24 ++++++++++++++---------- ui/dockwidget.py | 23 +++-------------------- ui/tabs/tab_a.py | 2 ++ ui/tabs/tab_b.py | 2 ++ 4 files changed, 21 insertions(+), 30 deletions(-) diff --git a/main.py b/main.py index f2f3ae0..b8b70ae 100644 --- a/main.py +++ b/main.py @@ -1,32 +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 Plan41: 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("Plan41", self.run, tooltip="Öffnet Plan41", priority=20) + 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() 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_plan41.ui.dockwidget import DockWidget - self.dockwidget = DockWidget(self.iface.mainWindow()) - self.dockwidget.setObjectName("sn_dock_plan41") + 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 850f157..5ec1750 100644 --- a/ui/dockwidget.py +++ b/ui/dockwidget.py @@ -1,24 +1,7 @@ -from qgis.PyQt.QtWidgets import QDockWidget, QTabWidget, QWidget, QVBoxLayout, QLabel from sn_basis.ui.tabs.settings_tab import SettingsTab from sn_plan41.ui.tabs.tab_a import TabA from sn_plan41.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 | Plan41") - - # 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 1bad8a9..db0f486 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 ae59936..785b79e 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()