Anpassung an den Wrappern für sn_plan41

This commit is contained in:
2026-01-08 17:13:51 +01:00
parent f88b5da51f
commit b805f78f02
26 changed files with 401 additions and 125 deletions

View File

@@ -5,7 +5,7 @@ Verwaltet das Anzeigen und Ersetzen von DockWidgets.
Stellt sicher, dass immer nur ein sn_basis-Dock gleichzeitig sichtbar ist.
"""
from typing import Any
from typing import Any, Optional
from sn_basis.functions import (
add_dock_widget,
@@ -14,6 +14,9 @@ from sn_basis.functions import (
warning,
error,
)
from sn_basis.functions.qt_wrapper import (
DockAreaRight,
)
class DockManager:
@@ -24,22 +27,34 @@ class DockManager:
dock_prefix = "sn_dock_"
@classmethod
def show(cls, dock_widget: Any, area=None) -> None:
def show(cls, dock_widget: Any, area: Optional[Any] = None) -> None:
"""
Zeigt ein DockWidget an und entfernt vorher alle anderen
sn_basis-Docks (erkennbar am Prefix 'sn_dock_').
"""
# -----------------------------------------------------
# Default-Dock-Area (wrapper-konform)
# -----------------------------------------------------
if area is None:
area = DockAreaRight
if dock_widget is None:
error("Dock konnte nicht angezeigt werden", "Dock-Widget ist None.")
return
try:
# -------------------------------------------------
# Sicherstellen, dass das Dock einen Namen hat
# -------------------------------------------------
if not dock_widget.objectName():
dock_widget.setObjectName(f"{cls.dock_prefix}{id(dock_widget)}")
dock_widget.setObjectName(
f"{cls.dock_prefix}{id(dock_widget)}"
)
# -------------------------------------------------
# Vorhandene Plugin-Docks entfernen
# -------------------------------------------------
try:
for widget in find_dock_widgets():
if (
@@ -54,7 +69,9 @@ class DockManager:
str(e),
)
# -------------------------------------------------
# Neues Dock anzeigen
# -------------------------------------------------
try:
add_dock_widget(area, dock_widget)
dock_widget.show()
@@ -66,4 +83,3 @@ class DockManager:
except Exception as e:
error("DockManager-Fehler", str(e))