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:
|
2025-11-13 09:32:36 +01:00
|
|
|
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
|
2025-11-17 10:05:42 +01:00
|
|
|
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_"):
|
2025-11-17 10:05:42 +01:00
|
|
|
iface.removeDockWidget(widget)
|
|
|
|
|
widget.deleteLater()
|
2025-10-09 12:51:36 +02:00
|
|
|
|
|
|
|
|
# Neues Dock anzeigen
|
|
|
|
|
iface.addDockWidget(area, dock_widget)
|
|
|
|
|
dock_widget.show()
|