forked from AG_QGIS/Plugin_SN_Basis
Anpassung an den Wrappern für sn_plan41
This commit is contained in:
@@ -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))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user