CLI server refactor
Description
This merge request introduces several key changes and improvements:
- The RPC server is now separated from the main application.
- The
parent_idis automatically resolved by examining the Qt parent-child hierarchy. - The property previously named
namehas been renamed toobject_nameto avoid conflicts with pyqtgraph’snameand_nameattribute. - The
object_nameis now linked to the QtObjectName, and it is ensured to be unique among sibling widgets sharing the same parent. - The
__init__method for all widgets has been updated to align with the new constructors inBECWidgetandBECConnector.BECConnectornow always starts with at least aQObjectto guarantee the correct parent and objectName assignment. - All widgets have been adjusted to accommodate these initialization changes.
- The cleanup process for plotting widgets and their associated popups and settings menus has been reviewed and updated.
- The setter for RPC has been fixed.
- Autoupdate functionality has been reintroduced and adjusted to work with the new plotting framework in one of the BECDocks within BECDockArea.
- A simple launcher menu has been introduced with launcher scripts and a basic
BECMainWindow. This window currently provides a link to the documentation and a theme changer and will be extended with an improved design in the future. - Cleanup of RPC-enabled widgets has been performed. Some widgets (such as ResumeButton and DarkModeButton) have been removed from the RPC interface as they were not suitable for RPC.
Related Issues
closes #444 (closed), #447 (closed), #356 (closed) #307 (closed), #297 (closed), #467 (closed), #471 (closed)
relates to #463 (closed),
Potential side effects
The new framework should be used and tested to find edge cases. This is one of the main breaking changes for V2!
Screenshots / GIFs (if applicable)
[Include any relevant screenshots or GIFs to showcase the changes made.]
Additional Comments
None.
Definition of Done
-
Documentation is up-to-date.