Resolve "Multiple windows and dock areas from client"
Description
This MR does the following:
- refactoring of
BECGuiClientMixin-> it is now renamedBECGuiClientand is not a mixin class anymore- the
guiobject in CLI is an instance of this class - it gives access to the main dock area in the main window (
.main) - as a consequence
BECDockAreabecomes like all other client-side objects (just inheritingRPCBase) - better handling of timeout if GUI server is not present
- no need for
Proxyanymore on the BEC startup/CLI client side
- the
-
gui.new(name)-> returns a newBECDockAreaas an independent window- windows can be inspected with
gui.windowdictionary
- windows can be inspected with
-
.selected_deviceis now stored in Redis, server-side can retrieve it (or can receive notifications) for Auto Update feature- instead of having this information in client only
-
AutoUpdatescode benefits from the generator executor inRedisConnector(see corresponding MR in BEC) -
gui.show(),gui.hide()allow to show or hide all top-level windows -
gui.close(),gui.start()allow to stop/restart the GUI server-
start()is asynchronous, do.start_server(wait=True)for the synchronous version
-
-
BECDockAreahas a.delete()method, which also cleans itself fromgui.window - RPC-related classes are moved to a dedicated
rpcsub-directory
Closes #422 (closed)
Edited by guijar_m