0
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-07-13 19:21:50 +02:00

fix(dock_area): save/restore state is saved in config

This commit is contained in:
2024-06-05 11:01:31 +02:00
parent 6f3b1ea985
commit 46face0ee5
2 changed files with 19 additions and 5 deletions

View File

@ -1,9 +1,8 @@
# This file was automatically generated by generate_cli.py
from bec_widgets.cli.client_utils import rpc_call, RPCBase, BECGuiClientMixin
from typing import Literal, Optional, overload
from bec_widgets.cli.client_utils import BECGuiClientMixin, RPCBase, rpc_call
class BECPlotBase(RPCBase):
@property
@ -1528,6 +1527,16 @@ class BECDock(RPCBase):
class BECDockArea(RPCBase, BECGuiClientMixin):
@property
@rpc_call
def config_dict(self) -> "dict":
"""
Get the configuration of the widget.
Returns:
dict: The configuration of the widget.
"""
@property
@rpc_call
def panels(self) -> "dict":

View File

@ -16,10 +16,14 @@ from .dock import BECDock, DockConfig
class DockAreaConfig(ConnectionConfig):
docks: dict[str, DockConfig] = Field({}, description="The docks in the dock area.")
docks_state: Optional[dict] = Field(
None, description="The state of the docks in the dock area."
)
class BECDockArea(BECConnector, DockArea):
USER_ACCESS = [
"config_dict",
"panels",
"save_state",
"remove_dock",
@ -81,7 +85,7 @@ class BECDockArea(BECConnector, DockArea):
extra(str): Extra docks that are in the dockarea but that are not mentioned in state will be added to the bottom of the dockarea, unless otherwise specified by the extra argument.
"""
if state is None:
state = self._last_state
state = self.config.docks_state
self.restoreState(state, missing=missing, extra=extra)
def save_state(self) -> dict:
@ -91,8 +95,9 @@ class BECDockArea(BECConnector, DockArea):
Returns:
dict: The state of the dock area.
"""
self._last_state = self.saveState()
return self._last_state
last_state = self.saveState()
self.config.docks_state = last_state
return last_state
def remove_dock(self, name: str):
"""