forked from AG_QGIS/Plugin_SN_Basis
Anpassung an den Wrappern für sn_plan41
This commit is contained in:
@@ -6,6 +6,17 @@ 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
|
||||
from sn_basis.functions.qt_wrapper import (
|
||||
QDockWidget,
|
||||
QTabWidget,
|
||||
Qt,
|
||||
DockWidgetMovable,
|
||||
DockWidgetFloatable,
|
||||
DockWidgetClosable,
|
||||
DockAreaLeft,
|
||||
DockAreaRight,
|
||||
)
|
||||
|
||||
|
||||
|
||||
class BaseDockWidget(QDockWidget):
|
||||
@@ -23,6 +34,19 @@ class BaseDockWidget(QDockWidget):
|
||||
|
||||
def __init__(self, parent=None, subtitle=""):
|
||||
super().__init__(parent)
|
||||
# -----------------------------------------------------
|
||||
# Dock-Konfiguration (WICHTIG)
|
||||
# -----------------------------------------------------
|
||||
self.setFeatures(
|
||||
DockWidgetMovable
|
||||
| DockWidgetFloatable
|
||||
| DockWidgetClosable
|
||||
)
|
||||
|
||||
self.setAllowedAreas(
|
||||
DockAreaLeft
|
||||
| DockAreaRight
|
||||
)
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Titel setzen
|
||||
|
||||
@@ -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))
|
||||
|
||||
|
||||
@@ -47,7 +47,8 @@ class Navigation:
|
||||
test_action = QAction("TEST ACTION", main_window)
|
||||
self.menu.addAction(test_action)
|
||||
self.toolbar.addAction(test_action)
|
||||
|
||||
self.plugin_group = QActionGroup(main_window)
|
||||
self.plugin_group.setExclusive(True)
|
||||
|
||||
|
||||
# -----------------------------------------------------
|
||||
|
||||
@@ -8,7 +8,7 @@ from sn_basis.functions.qt_wrapper import QDockWidget, QTabWidget
|
||||
from sn_basis.functions.message_wrapper import warning, error
|
||||
|
||||
|
||||
class BaseDockWidget(QDockWidget):
|
||||
class SettingsTab(QDockWidget):
|
||||
"""
|
||||
Basis-Dockwidget für alle LNO-Module.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user