From a5ad498e8a4ec0cbadc41b6fc8b50d9f28a3796e Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Mon, 17 Nov 2025 11:29:50 +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 | 25 ++++++++++++++----------- ui/dockwidget.py | 23 +++-------------------- 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 deb223e..aecfe27 100644 --- a/main.py +++ b/main.py @@ -1,33 +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 Widmung: 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("Widmung", self.run, tooltip="Öffnet Widmung", priority=30) + self.action = basis.ui.add_action( + self.plugin_name, + self.run, + tooltip=f"Öffnet {self.plugin_name}", + priority=30 + ) 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_widmung.ui.dockwidget import DockWidget - self.dockwidget = DockWidget(self.iface.mainWindow()) - self.dockwidget.setObjectName("sn_dock_widmung") + 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 7a92bc9..cfac3d0 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_widmung.ui.tabs.tab_a import TabA from sn_widmung.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 | Widmung") - - # TabWidget erzeugen - tabs = QTabWidget() - - # Tab A - tabs.addTab(TabA(), "Plugin2 A") - - # Tab B - tabs.addTab(TabB(), "Plugin2 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()