forked from AG_QGIS/Plugin_SN_Basis
Wrappe modular aufgebaut, Tests erfolgreich, Menüleiste und Werzeugleiste werden eingetragen (QT6 und QT5)- (Es fehlen noch Fachplugins, um zu prüfen, ob es auch wirklich in QGIS geht)
This commit is contained in:
@@ -1,12 +1,17 @@
|
||||
# sn_basis/ui/base_dockwidget.py
|
||||
"""
|
||||
sn_basis/ui/base_dockwidget.py
|
||||
|
||||
from qgis.PyQt.QtWidgets import QDockWidget, QTabWidget
|
||||
from sn_basis.functions.qgisqt_wrapper import warning, error
|
||||
Basis-Dockwidget für alle LNO-Module.
|
||||
"""
|
||||
|
||||
from sn_basis.functions.qt_wrapper import QDockWidget, QTabWidget
|
||||
from sn_basis.functions.message_wrapper import warning, error
|
||||
|
||||
|
||||
class BaseDockWidget(QDockWidget):
|
||||
"""
|
||||
Basis-Dockwidget für alle LNO-Module.
|
||||
|
||||
- Titel wird automatisch aus base_title + subtitle erzeugt
|
||||
- Tabs werden dynamisch aus der Klassenvariable 'tabs' erzeugt
|
||||
- Die zugehörige Toolbar-Action wird beim Schließen zurückgesetzt
|
||||
@@ -23,19 +28,15 @@ class BaseDockWidget(QDockWidget):
|
||||
# Titel setzen
|
||||
# -----------------------------------------------------
|
||||
try:
|
||||
title = self.base_title if not subtitle else f"{self.base_title} | {subtitle}"
|
||||
title = (
|
||||
self.base_title
|
||||
if not subtitle
|
||||
else f"{self.base_title} | {subtitle}"
|
||||
)
|
||||
self.setWindowTitle(title)
|
||||
except Exception as e:
|
||||
warning("Titel konnte nicht gesetzt werden", str(e))
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Dock-Features
|
||||
# -----------------------------------------------------
|
||||
try:
|
||||
self.setFeatures(QDockWidget.DockWidgetFeature.DockWidgetClosable)
|
||||
except Exception as e:
|
||||
warning("Dock-Features konnten nicht gesetzt werden", str(e))
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Tabs erzeugen
|
||||
# -----------------------------------------------------
|
||||
@@ -45,15 +46,25 @@ class BaseDockWidget(QDockWidget):
|
||||
for tab_class in self.tabs:
|
||||
try:
|
||||
tab_instance = tab_class()
|
||||
tab_title = getattr(tab_class, "tab_title", tab_class.__name__)
|
||||
tab_title = getattr(
|
||||
tab_class,
|
||||
"tab_title",
|
||||
tab_class.__name__,
|
||||
)
|
||||
tab_widget.addTab(tab_instance, tab_title)
|
||||
except Exception as e:
|
||||
error("Tab konnte nicht geladen werden", f"{tab_class}: {e}")
|
||||
error(
|
||||
"Tab konnte nicht geladen werden",
|
||||
f"{tab_class}: {e}",
|
||||
)
|
||||
|
||||
self.setWidget(tab_widget)
|
||||
|
||||
except Exception as e:
|
||||
error("Tab-Widget konnte nicht initialisiert werden", str(e))
|
||||
error(
|
||||
"Tab-Widget konnte nicht initialisiert werden",
|
||||
str(e),
|
||||
)
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# Dock schließen
|
||||
@@ -68,6 +79,9 @@ class BaseDockWidget(QDockWidget):
|
||||
if self.action:
|
||||
self.action.setChecked(False)
|
||||
except Exception as e:
|
||||
warning("Toolbar-Status konnte nicht zurückgesetzt werden", str(e))
|
||||
warning(
|
||||
"Toolbar-Status konnte nicht zurückgesetzt werden",
|
||||
str(e),
|
||||
)
|
||||
|
||||
super().closeEvent(event)
|
||||
|
||||
Reference in New Issue
Block a user