Files
Plugin_SN_Basis/ui/dockmanager.py

22 lines
688 B
Python
Raw Normal View History

2025-10-09 12:51:36 +02:00
from qgis.PyQt.QtCore import Qt
from qgis.PyQt.QtWidgets import QDockWidget
from qgis.utils import iface
2025-11-17 11:29:04 +01:00
2025-10-09 12:51:36 +02:00
class DockManager:
default_area = Qt.DockWidgetArea.RightDockWidgetArea
2025-10-09 12:51:36 +02:00
@classmethod
def show(cls, dock_widget, area=None):
2025-11-17 11:29:04 +01:00
area = area or cls.default_area
2025-10-09 12:51:36 +02:00
2025-11-17 11:29:04 +01:00
# Bestehende Plugin-Docks mit Präfix schließen
for widget in iface.mainWindow().findChildren(QDockWidget):
2025-11-17 11:29:04 +01:00
if widget is not dock_widget and widget.objectName().startswith("sn_dock_"):
iface.removeDockWidget(widget)
widget.deleteLater()
2025-10-09 12:51:36 +02:00
# Neues Dock anzeigen
iface.addDockWidget(area, dock_widget)
dock_widget.show()