mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 03:31:50 +02:00
fix(dock_area): close BECMainWindow if dock area is central widget
This commit is contained in:
@ -3,7 +3,6 @@ from __future__ import annotations
|
|||||||
from typing import TYPE_CHECKING, Literal, Optional
|
from typing import TYPE_CHECKING, Literal, Optional
|
||||||
from weakref import WeakValueDictionary
|
from weakref import WeakValueDictionary
|
||||||
|
|
||||||
from bec_lib.endpoints import MessageEndpoints
|
|
||||||
from bec_lib.logger import bec_logger
|
from bec_lib.logger import bec_logger
|
||||||
from pydantic import Field
|
from pydantic import Field
|
||||||
from pyqtgraph.dockarea.DockArea import DockArea
|
from pyqtgraph.dockarea.DockArea import DockArea
|
||||||
@ -23,6 +22,7 @@ from bec_widgets.utils.toolbar import (
|
|||||||
)
|
)
|
||||||
from bec_widgets.utils.widget_io import WidgetHierarchy
|
from bec_widgets.utils.widget_io import WidgetHierarchy
|
||||||
from bec_widgets.widgets.containers.dock.dock import BECDock, DockConfig
|
from bec_widgets.widgets.containers.dock.dock import BECDock, DockConfig
|
||||||
|
from bec_widgets.widgets.containers.main_window.main_window import BECMainWindow
|
||||||
from bec_widgets.widgets.control.device_control.positioner_box import PositionerBox
|
from bec_widgets.widgets.control.device_control.positioner_box import PositionerBox
|
||||||
from bec_widgets.widgets.control.scan_control.scan_control import ScanControl
|
from bec_widgets.widgets.control.scan_control.scan_control import ScanControl
|
||||||
from bec_widgets.widgets.editors.vscode.vscode import VSCodeEditor
|
from bec_widgets.widgets.editors.vscode.vscode import VSCodeEditor
|
||||||
@ -528,7 +528,18 @@ class BECDockArea(BECWidget, QWidget):
|
|||||||
# self._broadcast_update()
|
# self._broadcast_update()
|
||||||
|
|
||||||
def remove(self) -> None:
|
def remove(self) -> None:
|
||||||
"""Remove the dock area."""
|
"""
|
||||||
|
Remove the dock area. If the dock area is embedded in a BECMainWindow and
|
||||||
|
is set as the central widget, the main window will be closed.
|
||||||
|
"""
|
||||||
|
parent = self.parent()
|
||||||
|
if isinstance(parent, BECMainWindow):
|
||||||
|
central_widget = parent.centralWidget()
|
||||||
|
if central_widget is self:
|
||||||
|
# Closing the parent will also close the dock area
|
||||||
|
parent.close()
|
||||||
|
return
|
||||||
|
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user