65 lines
2.4 KiB
Python
65 lines
2.4 KiB
Python
"""sn_plan41/ui/dockwidget.py – Haupt-DockWidget für sn_plan41.
|
||
Verwaltet die Tabs für Linkvalidierung, Druck und Einstellungen.
|
||
"""
|
||
|
||
from sn_basis.ui.tabs.settings_tab import SettingsTab
|
||
from sn_plan41.ui.tab_a_ui import TabA
|
||
from sn_basis.ui.tabs.print_tab import PrintTab
|
||
from sn_basis.ui.base_dockwidget import BaseDockWidget
|
||
from sn_basis.functions.qt_wrapper import QTabWidget
|
||
from sn_basis.functions.message_wrapper import error
|
||
|
||
|
||
class DockWidget(BaseDockWidget):
|
||
"""Haupt-DockWidget für sn_plan41 mit Tab-Verwaltung.
|
||
|
||
Attributes:
|
||
tabs: Liste von Tab-Klassen (TabA, PrintTab, SettingsTab)
|
||
pruefmanager: Prüfmanager-Instanz für Validierung
|
||
data_grabber: DataGrabber-Instanz für Fachdatenabruf
|
||
"""
|
||
|
||
tabs = [TabA, PrintTab, SettingsTab]
|
||
|
||
def __init__(self, parent=None, subtitle="", pruefmanager=None, data_grabber=None):
|
||
"""Initialisiert das DockWidget mit Services und Tabs.
|
||
|
||
Args:
|
||
parent: Übergeordnetes Widget
|
||
subtitle: Untertitel des DockWidgets
|
||
pruefmanager: Prüfmanager-Instanz
|
||
data_grabber: DataGrabber-Instanz
|
||
"""
|
||
super().__init__(parent, subtitle)
|
||
|
||
# Services als Attribute speichern
|
||
self.pruefmanager = pruefmanager
|
||
self.data_grabber = data_grabber
|
||
|
||
# Tabs NACH Services initialisieren (override der Basis-Logik)
|
||
self._init_tabs_with_services()
|
||
|
||
def _init_tabs_with_services(self):
|
||
"""Tabs mit pruefmanager/data_grabber initialisieren"""
|
||
try:
|
||
# Bestehendes TabWidget löschen
|
||
self.setWidget(None)
|
||
|
||
tab_widget = QTabWidget()
|
||
for tab_class in self.tabs:
|
||
tab_instance = tab_class(self) # parent=self.dockwidget
|
||
tab_title = getattr(tab_class, "tab_title", tab_class.__name__)
|
||
tab_widget.addTab(tab_instance, tab_title)
|
||
|
||
# Services durchreichen
|
||
if hasattr(tab_instance, 'set_services'):
|
||
tab_instance.set_services(
|
||
pruefmanager=self.pruefmanager,
|
||
data_grabber=self.data_grabber
|
||
)
|
||
|
||
self.setWidget(tab_widget)
|
||
except Exception as e:
|
||
error("Services-Tabs konnten nicht initialisiert werden", str(e))
|
||
|