0
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-07-13 11:11:49 +02:00
Files
bec_widgets/CHANGELOG.md
semantic-release 9c84e158ba 2.0.3
Automatically generated by python-semantic-release
2025-05-02 11:52:31 +00:00

263 KiB

CHANGELOG

v2.0.3 (2025-05-02)

Bug Fixes

  • generate_cli: Apply isort config (770dbd4)

  • image_item: Wrong user access name for rotation (58a0bc7)

Continuous Integration

  • Add job to test that the generated client is up to date (d22035f)

v2.0.2 (2025-05-01)

Bug Fixes

  • plot_base: No content margin for plot_widget window (1b78840)

v2.0.1 (2025-04-30)

Bug Fixes

  • dock_area: Restore state safeguard to not pass none to pyqtgraph restoreState (9079ddd)

v2.0.0 (2025-04-29)

Bug Fixes

  • Add designer plugin for ScanMetadata (43e1aa9)

  • Add support for 'add_slice', add downsampling for performance improvements. add tests (7f7891d)

  • Broadcast context manager to emit registry changes just once (a5f06c8)

  • Bugfix in cleanup of ScatterWaveform ScatterCurve; closes #520 (1d09107)

  • Change default colormap to plasma (074bbbc)

  • Create widget enum programatically (7726d83)

  • Ensure provided dock and dock_area names are valid and defaults are snake_case (0ac14a7)

  • Expose common classes from bec_widgets package (28ae0d2)

  • Forward parent to children (1fc6125)

  • Import from qtpy instead of PySide6 (fef07ac)

  • Proper cleanup of progressbar (8ff2063)

  • Rpc access enabled for certain widgets. (ef4a52c)

  • Server shutdown widgets (75b2446)

  • Support auto_range_x/y for viewAll during measurement (af28e2e)

  • Unique name for widgets, fix new method for docks; closes #534 (77f9d42)

  • Warning in logpanel (1d7b423)

  • chain a signal to the child BecLogsQueue rather than passing the signal instance in

  • Wrap fetching plugin widgets in case of errors (ef14831)

  • auto_updates: Fix condition to skip auto update (18e4ba6)

  • bec_connector: Add assertion to ensure BECConnector is used with a QObject; closes #475 (1921444)

  • bec_connector: Add setObjectName method to update object name and broadcast if registered; closes #472 (064343a)

  • bec_connector: Call cleanup on widgets if the parent was deleted (fc1cdc8)

  • bec_connector: Improve cleanup handling on deleted parent to prevent errors (3709cdc)

  • bec_connector: Move RPC registration into single shot method to ensure the rpc name is in sync (3b16c9f)

  • bec_queue: Set parent for toolbar buttons (cdc613b)

  • becconnector: Widgets can be flagged as root widget, skipping the BECMainWindow in CLI usage (061f348)

  • becconnector,widgets: Parent_id is always fetched from the real bec widget parent; all widgets adjusted; hardcoded parent_ids removed (f35f4c4)

  • BECGuiClient: Add launch_script parameter to dock area creation (06a4954)

  • cleanup: Prevent double cleanup by tracking object destruction state (fde9120)

  • cli: Add type ignore comment to generated files (d171255)

  • client: Import reduce (8cca510)

  • client: Regenerated client (c97db6a)

  • client: Rpc API adjusted for DockArea, ImageItem and Waveform (6ca4aa0)

  • client_utils: Simplify RPC client instantiation in BECGuiClient (96b31a4)

  • colormap_widget: Size policy fixed (1cc2a98)

  • compact_popup: Forward close event (e0f146b)

  • crosshair: Adapted for 2D image (a85402d)

  • curve: Fix unique names for custom curves (8e846d4)

  • dark-mode-button: Fix parent passed to QObjects in various classes (a06f060)

  • designer: Avoid touching deleted widgets during init as QtDesigner will segfault (4381fcc)

  • designer-plugin-generator: Enhance super constructor validation for new style classes (6318b2d)

  • device_input_base: Removed enums from Pydantic models to make them serialisable (43b747e)

  • dock_area: Close BECMainWindow if dock area is central widget (e725de3)

  • docs: Update copyright year to be dynamic (f2d5b57)

  • entry_validator: Validator reports list of signal if user chooses the wrong one (da05877)

  • image: Imageitem remove adjusted to disconnect and remove current displayed image (98f159b)

  • launch_window: Redesign (7e65d4f)

  • launch_window: Return None when cancelling the ui file launcher (b3dbe92)

  • launch_window: Update LaunchTile icon to use new UI loader tile image (3cd6e05)

  • launcher: Hide launcher when launcher is closed even though it is not the last widget (6e7920c)

  • lmfit_dialog_vertical: Vertical sizePolicy fixed (584b945)

  • main_window: Connected to theme change (11feeff)

  • main_window: Show app id only when connected to redis (be72268)

  • moduar-toolbar: Fix cleanup of modular toolbar and dock_area (c70cd9d)

  • motor_map: Limit map creating optimized (9f2a083)

  • plot_base: Ability to set y label suffix (890b501)

  • plot_base: Aspect ratio removed from the PlotBase (19d8aeb)

  • plot_base: Axis setting filter for relevant properties (0204d9c)

  • plot_base: Do not enable inner axes when label is changed (98eda03)

  • plot_base: Enable popup property fixed (30db183)

  • plot_base: Fix cleanup of popups if popups are still open when PlotBase is closed (39cf4dd)

  • plot_base: Improved handling of matplotlib exporter errors (4f9514f)

  • plot_base: Inner and outer axis setting in popup mode (055b968)

  • plot_base: Update mouse mode state on mode change (fc24c8b)

  • plot_framework: All widgets, popups and side menus cleanups adjusted (337a332)

  • plot_indicators: Cleanup adjusted (4865341)

  • plot_indicators: Plot indicators added to the PlotBase (42e3b9c)

  • positioner-indicator: Fix property setters for position indicator (1910993)

  • progress-ring-bar: Fix parent inheritance and cleanup of ring objects; closes #496 (b460ea9)

  • ring-progress-bar: Fix bug in disconnect slot of rings, enable 'scan' mode as default for init with first ring (7c303d0)

  • ring_progress_bar: Replaced hard-coded endpoints by MessageEndpoints (e4e9feb)

  • round_frame: Orientation can be vertical (c1bbb16)

  • round_frame: Roundframe removed from BECWidget inheritance (b58a098)

  • rpc: Call close on container widget if needed (a13de45)

  • rpc-base: Deprecate widget_name in favor of object_name; closes #499 (86647b9)

  • rpc_base: Ensure message wait event is set after processing RPC response (4dc59aa)

  • rpc_base: Timeout run_rpc 3s (8558b46)

  • rpc_register: _lock and _skip_broad_cast moved to instance attributes (8d17f7e)

  • rpc_register: Change add_rpc parameter type to BECConnector and add object_is_registered method (82b8265)

  • rpc_register: Lock changed to RLock (6c90ca3)

  • rpc_server: Broadcasted data check (c36852b)

  • rpc_server: Enhance serialization logic for BECConnector objects and fix return types (125afc8)

  • rpc_server: Update _serialize_bec_connector to include wait parameter for registration check (d6fccd1)

  • RPCReference: Setattr added (a2128ad)

  • scan_control: Restore scan parameters always regenerate the arg box, preventing infinite loop (1f2db92)

  • scan_matadata: Parent passing (4eaadd1)

  • scatter_waveform,waveform: Added QTimer to fetch the last data points after 500ms (e6795dd)

  • serialization: Add serialization for qpointf (3ddfeaa)

  • server: Becdockarea type added (4a74891)

  • server: Remove window.hide() since widgets will be teared down on kill_server before siginit signals is sent (58b0c7d)

  • server: Turn_off_the_lights cleanup fixed for parent_id widgets (20a86ad)

  • setting_widget: Added parent kwarg into all settings widgets in plotting framework (94c2e2d)

  • side_panel: Side panel menu can be initialized without a title (112eed6)

  • toolbar: Update action check handling logic for SwitchableToolBarAction (ac08bdf)

  • type hints: Add future import to prevent sphinx from crashing (aff5a51)

  • waveform: Dap curve flickering (b03d2ea)

  • waveform: Error where scan history is empty (288ea4d)

  • waveform: Fix dap curve categorization logic (b91f1fe)

  • waveform: Legend is correctly updated when changed from curve dialog (c2d2c48)

  • waveform: Signals for x device can be defined from gui (39164fe)

  • waveform, rpc_reference: getitem removed form waveform and rpc_reference (3a82c95)

  • website-widget: Add super().cleanup() in website widget (8fbd54c)

  • widgets: Becconnector resolves hierarchy including objectName, parent, parent_id upon init; all widgets adjusted (a1bec75)

Build System

  • Pyside6 capped to 6.9 (9dabf2c)

  • bec_lib: Raised required version to 3.28.1 (a5f1f47)

  • dependencies: Update min bec_lib version to 3.29 (eb0323b)

Continuous Integration

  • e2e: E2e tests are saving logs (d4106c5)

Documentation

  • Add docs on widget plugins (52a9f29)

  • Add missing class doc strings for rpc-enabled widgets (cfc8272)

  • Better document logpanel code (d2c9075)

  • Grammar improvement (1fe052e)

  • Remove BECFigure (75cc45d)

  • Remove BECFigure from docs, fix wrong api for docs of plotting widgets (a1c859c)

  • Replaces instances of QtDesigner with BEC Designer for improved clarity (60852e2)

  • Review quick_start (4acf5be)

  • Update docs for v2 (25bd905)

  • Update docs for various widgets (b6695b4)

  • Update quick_start (afc818b)

  • Updated docs for v2 (#531, b4af2cc)

  • auto_updates: Update documentation for auto updates functionality and add launcher image (6630ba1)

  • lmfit: Fix links (5e4965f)

  • plot_base: Update docstrings for properties and setters (b085ef6)

  • position-indicator: Update docs for positioner indicator (2f0d213)

Features

  • Add loader/helper for widget plugins (ca2bb4f)

  • Add rpc broadcast (2ba9b4c)

  • Add support for auto updates (2511056)

  • Delete bec_app (8e64b65)

  • Deprecated and delete alignment_1d gui (27ea92d)

  • Namespace update for gui, dock_area and docks. (ac3c5a3)

  • auto_update: Add GUI highlight management for auto updates status (5f272a6)

  • auto_updates: Enforce rpc widget class for subclasses of auto updates (778230b)

  • image: New Image widget based on new PlotBase (cb39ff3)

  • launch_window: Add custom UI file launching functionality and UI tile (3089ca1)

  • launch_window: Add user access permissions (8efa93d)

  • launch_window: Enhance auto update functionality with selector and dynamic loading (2965323)

  • launcher: Add option for launching with auto updates (20a1c5d)

  • main_window: Add launcher menu and functionality to show launcher (55baa84)

  • motor_map: New MotorMap widget based on PlotBase (fec26d7)

  • multi_waveform: Multi-waveform widget based on new PlotBase (77f9616)

  • plugin_utils: Add functionality to retrieve auto update classes from plugins (c434af9)

  • positioner_box: Add units QLabel to device UI components and update visibility logic (f653fc5)

  • scatter_waveform: Scatter waveform widget based on new Plotbase (95fcf01)

  • server,launcher: Rpc server separated with the launcher window introduced (5f27a90)

  • slot: Add 'verify_sender' argument to SafeSlot for sender verification (8eef425)

  • ui_launch_window: Add UILaunchWindow class (45cd82e)

  • waveform: New Waveform widget based on NextGen PlotBase (4bec181)

  • widget_io: Added handler for Sliders (1a0097e)

Refactoring

  • Add fallback to 'index' plotting in case of missmatch in length (515d7ad)

  • Add pragma no cover to various TYPE_CHECKING (f88dfc8)

  • Add support to plot against x_data (0e276d4)

  • Add template for debugging the cli generator (f89e74b)

  • Autoupdate disabled (4e29291)

  • Cleanup MR (0b00cd2)

  • Cleanup rpc reference tracking, fix appquit, fix namespace updates edge cases (7ba93ce)

  • Cleanup, fix tests and _top_level dict/windows (5872253)

  • Fix cleanup bug for BECConnector items, renamed _registry_state to _server_registry (be83c7d)

  • Fix cleanup for various widgets, including RoundedFrame (d05179a)

  • Improve plotting behaviour from history (ed2d958)

  • Rearrange base of metadata forms for generic use (d04770f)

  • Set downsampling to auto=True, method 'peak', activate clipToView for (Async)-Curves and fix ViewAll hook from pg.view_box menu (25820a1)

  • Tidy client generation and add options (b492591)

  • assets: New icon for ui loader (e5b5322)

  • auto_update: Auto_update changed to be BECMainWindow; removed auto update logic from BECDockArea (56c2827)

  • auto_updates: Move cleanup method from user section to internal section (ac9224e)

  • bec_connector: Replace pyqtSlot with SafeSlot for consistency (9d6d0b4)

  • bec_figure: Becfigure removed (f76d931)

  • client_utils: Remove unused auto update attributes from BECGuiClient (b7795b4)

  • image_widget: Old BECImageWidget removed (de10609)

  • launch_window: Remove cleanup method (9a940bb)

  • launcher,main_window: Launcher window moved to inherit from BECMainWindow (99383b7)

  • motor_map_widget: Becmotormapwidget removed (f878e87)

  • multi_waveform_widget: Becmultiwaveformwidget removed (7c31bbd)

  • plots: Plot_next_gen module renamed to plots (9fb9a1c)

  • plots: Waveform and image rpc api review (a3de1f0)

  • rpc_reference: Refactor rpc reference tracking (bd5e251)

  • rpc_server: Add type hint for _get_becwidget_ancestor method parameter; minor cleanup of imports (cb91ebc)

  • rpc_server: Add type hints and docstrings for heartbeat and registry update methods (08168f2)

  • rpc_server: Cli_server renamed to rpc_server (6082e7a)

  • tests: Create dummy scan item moved to client_mocks.py (0dd9617)

  • ui_loader: Remove unnecessary parent_id handling (d60cf6c)

  • ui_loader: Remove unused import (a6ce312)

  • utils: Qt_utils moved to utils (be552d3)

  • waveform_widget: Removed and replaced by Waveform (96cff49)

Testing

  • Add function scoped rpc_widgets e2e test; closes #510 (36dc174)

  • Add IPython client GUI object test module with tab completion (e3d0d55)

  • Add tests for name creation of custom curves, and object name handling (99d7623)

  • Disable test_bec_dock_rpc_e2e module, issue to fix this created #450 (17f2dda)

  • Fix rpc widgets e2e test (113938e)

  • Fix tests for launcher close / hide behavior (23fee22)

  • Fix tests for namespace updates (f3d3c94)

  • Qapp must shutdown cli server before checking for leaked QTimer (d066051)

  • bec_connector: Becconnector requires a QObject (23bdd95)

  • device_signal_input: Fix init of device input widget (31c3b64)

  • e2e: E2e tests adjusted for new plotting framework (378398a)

  • generate_cli: Fix reference output (a8adb06)

  • launch_window: Add test for launching UI file that raises ValueError for QMainWindow (33a8a76)

  • launch_window: Add unit tests for LaunchWindow initialization and custom UI file launching (d5e422c)

  • launch_window: Tests for default and plugin auto updates (e10f5ec)

  • plot_base: Test for plot base re-enabled (b51d637)

  • plot_indicators: Tests adapted to not be dependent on BECWaveformWidget (360fe4c)

  • setting_dialog: Test that settings reject calls cleanup (8914f1d)

  • unit_tests: Unit tests adjusted to use a modern plotting framework instead of BECFigure (6ade934)

v1.25.1 (2025-03-24)

Bug Fixes

  • positioner_box: Fixed motor moving flags for spinner (be274a1)

  • positioner_box: If possible tweak should use the current setpoint instead of the readback (e5c9dd2)

Continuous Integration

  • Add e2e job for pre_release branches (d86ef4e)

  • Fix conda channels for PSI policy change (6cf39b3)

v1.25.0 (2025-03-07)

Features

  • waveform: Add slice handling and reset functionality for async updates (7cbebbb)

v1.24.5 (2025-03-06)

Bug Fixes

  • Add support for additional keyword arguments in widget constructors (66c6c7f)

v1.24.4 (2025-03-05)

Bug Fixes

  • cli/server: Handle RedisError during heartbeat emission to properly close the app even if the Redis connection is lost (2c506ee)

v1.24.3 (2025-03-05)

Bug Fixes

  • multi_waveform: Update on_async_readback to use structured metadata for async updates with "add" instead of "extend" (fa91366)

v1.24.2 (2025-02-27)

Bug Fixes

  • e2e: Added wait time to flaky e2e (46b1a22)

v1.24.1 (2025-02-26)

Bug Fixes

  • plot_base: Ability to choose between popup or side panel gui mode (3aa2f22)

  • toolbar: Switch Actions for default checked actions fixed (6d1106e)

Refactoring

  • axis_settings: Spinbox migrated to new BECSpinBoxes (90a1846)

  • plot_base: Toolbar buttons adapted for the Switch actions from toolbar; plot export and mouse modes consolidated into one switch button (6f2c240)

Testing

  • Extended test coverage for axis settings, plot base and qt toolbar action (8679b5f)

v1.24.0 (2025-02-26)

Bug Fixes

  • Make scan metadata use collapsible frame (1c0021f)

  • Replace add'l md table w/ tree view (42665b6)

Code Style

Features

  • Add expandable/collapsible frame (5206528)

  • Add metadata widget to scan control (7309c1d)

v1.23.1 (2025-02-24)

Bug Fixes

  • Update redis mock for changes in bec (6a43554)

v1.23.0 (2025-02-24)

Features

  • bec_spin_box: Double spin box with setting inside for defining decimals (f19d948)

v1.22.0 (2025-02-19)

Bug Fixes

  • modular_toolbar: Add action to an already existing bundle (4c4f159)

  • toolbar: Qmenu Icons are visible (c2c0221)

  • toolbar: Update_separators logic updated, there cannot be two separators next to each other (facb8c3)

  • toolbar: Widget actions are more compact (ef36a71)

Features

  • toolbar: Switchabletoolbarbutton (333570b)

Refactoring

  • toolbar: Added dark mode button for testing appearance for the toolbar example (6b08f7c)

Testing

  • toolbar: Blocking tests fixed (6ae33a2)

v1.21.4 (2025-02-19)

Bug Fixes

  • colors: Pyqtgraph styling updated on the app level (ae18279)

  • plot_base: Mouse interactions default state fetch to toolbar (97c0ed5)

Refactoring

  • plot_base: Change the PlotWidget to GraphicalLayoutWidget (ff8e282)

v1.21.3 (2025-02-19)

Bug Fixes

  • bec_signal_proxy: Unblock signal timer cleanup added (0addef5)

v1.21.2 (2025-02-18)

Bug Fixes

  • client_utils: Autoupdate has correct propagation of BECDockArea to plugin repos (056731c)

v1.21.1 (2025-02-17)

Bug Fixes

  • bec_connector: Workers stored in reference to not be cleaned up with garbage collector (383936f)

v1.21.0 (2025-02-17)

Features

  • Generated form for scan metadata (1708bd4)

v1.20.0 (2025-02-06)

Features

  • widget: Add LogPanel widget (b3217b7)

hopefully without segfaults - compared to first implementation: - explicitly set parent of all dialog components - try/except and log for redis new message callback - pass in ServiceStatusMixin and explicitly clean it up

v1.19.2 (2025-02-06)

Bug Fixes

  • Cleanup timer in Minesweeper (fc6d7c0)

  • Mock QTimer, improve timeout message (fb05186)

v1.19.1 (2025-02-05)

Bug Fixes

  • macos: Suppress IMKClient warning on macos (5e3289f)

v1.19.0 (2025-01-31)

Bug Fixes

  • Enable type checking for BECDispatcher in BECConnector (50a572d)

Documentation

Features

  • widget: Add LogPanel widget (f048880)

v1.18.1 (2025-01-30)

Bug Fixes

  • signal_combo_box: Added missing plugin modules for signal line_edit/combobox (db70442)

Documentation

  • Add screenshots for device and signal input (f0c4efe)

v1.18.0 (2025-01-30)

Bug Fixes

  • generate_cli: Widgets can be tagged with RPC=False, then they are excluded from client.py for RPC (48fc63d)

Build System

Continuous Integration

  • Fix formatter 2024 versions (4f8e683)

Features

  • plot_base_next_gen: New type of plot base inherited from QWidget (e7c9729)

v1.17.2 (2025-01-28)

Bug Fixes

  • widget_state_manager: Skip QLabel saving; skip_setting property widget excluded from INI; stored=False property excluded from INI (b2b0450)

v1.17.1 (2025-01-26)

Bug Fixes

  • bec_signal_proxy: Timeout for blocking implemented (6f2f2aa)

v1.17.0 (2025-01-23)

Bug Fixes

  • Focus policy and tab order for positioner_box_2d (6df5710)

Documentation

  • Add documentation for 2D positioner box (9a8cc31)

Features

  • widget: Add 2d positioner box widget (d2ffddb)

Refactoring

  • Move positioner_box and line into submodule (2419521)

PositionerBox and PositionerControlLine are now exported from from bec_widgets.widgets.control.device_control.positioner_box, removing one level of hierarchy

  • Move positioner_box logic to base class (3770db5)

v1.16.5 (2025-01-22)

Bug Fixes

  • cli: Server log level info and error (df961a9)

  • error_popups: Errors in SafeProperty and in SafeSlot are always logged, even with error message popup enabled (219d43d)

v1.16.4 (2025-01-21)

Bug Fixes

  • Make combo box plugin files conform to autogen name (141e1a3)

v1.16.3 (2025-01-20)

Bug Fixes

  • error_popups: Logger message in SafeSlot for errors; identification in error log from which property or signal errors comes from (02a4862)

Testing

  • error_popups: Safeslot tests adjusted; tests extended to cover SafeProperty (dfa2908)

v1.16.2 (2025-01-20)

Bug Fixes

  • widget_io: Toggleswitchhandler added (889ea86)

v1.16.1 (2025-01-16)

Bug Fixes

  • error_popups: Safeproperty logger import fixed (b40d2c5)

v1.16.0 (2025-01-14)

Bug Fixes

  • e2e: Num of elements to wait for scan fixed to steps requested in the scan (0fd5dd5)

  • toolbar: Adjusted to future plot base (508abfa)

Features

  • modular_toolbar: Context menu and action bundles (001e6fc)

v1.15.1 (2025-01-13)

Bug Fixes

  • error_popups: Safeproperty wrapper extended to catch more errors and not crash Designer (3b04b98)

v1.15.0 (2025-01-10)

Features

  • widget_state_manager: Example app added (a00d368)

  • widget_state_manager: State manager for single widget (01b4608)

v1.14.1 (2025-01-10)

Bug Fixes

  • Cast spinner widget angle to int when using for arc (fa9ecaf)

v1.14.0 (2025-01-09)

Documentation

  • Add docs for games/minesweeper (e2c7dc9)

Features

  • widget: Make Minesweeper into BEC widget (507d46f)

  • widgets: Added minesweeper widget (57dc1a3)

v1.13.0 (2025-01-09)

Bug Fixes

  • Add .windows property to keep track of top level windows, ensure all windows are shown/hidden (48c140f)

  • Bec-gui-server script: fix logic with name == 'main' (6f2eb6b)

When started with "bec-gui-server" entry point, name is "bec_widgets.cli.server". When started with "python -m bec_widgets.cli.server", name is "main". So, better to not rely on name at all.

  • Determine default figure since the beginning (271a4a2)

  • Do not display error popup if command is executed via RPC (52c5286)

  • Prevent infinite recursion in show/hide methods (1b03ded)

  • Prevent top-level dock areas to be destroyed with [X] button (09cb08a)

  • Remove useless class member (42fd78d)

  • Set minimum size hint on BECDockArea (2742a3c)

  • Simplify AutoUpdate code thanks to threadpool executor in BEC Connector (1b03825)

  • Tests: rename fixtures and add 'connected_client_gui_obj' (955cc64)

  • Use generator exec feature of BEC Connector to remove the AutoUpdate thread+queue (c405421)

  • Use specified timeout in _run_rpc (bdb2520)

Build System

  • Fixed pytest bec dependency (bd54142)

Continuous Integration

  • Install pytest plugin from specified repo, not pypi (95f6a7c)

Features

  • Add "new()" command to create new dock area windows from client (bde5618)

  • Add '.delete()' method to BECDockArea, make main window undeletable (92b8020)

  • Add test for BECGuiClient features .new, .delete, .show, .hide, .close (0ff0c06)

  • widget_io: General change signal for supported widgets (54e64c9)

Refactoring

  • Becguiclientmixin -> BECGuiClient (809e654)

  • Mixin class was only used with BECDockArea, now it is a class by itself which represents the client object connected to the GUI server ; ".main" is the dock area of the main window - Enhanced "wait_for_server" - ".selected_device" is stored in Redis, to allow server-side to know about the auto update configuration instead of keeping it on client

  • Move RPC-related classes and modules to 'rpc' directory (5c83702)

This allows to break circular import, too

  • rpc,client_utils: Minor cleanup and type hint improvements (1c8b06c)

v1.12.0 (2024-12-12)

Features

  • safe_property: Added decorator to handle errors in Property decorator from qt to not crash designer (e380489)

v1.11.0 (2024-12-11)

Features

  • collapsible_panel_manager: Panel manager to handle collapsing and expanding widgets from the main widget added (a434d3e)

Testing

  • collapsible_panel_manager: Fixture changed to not use .show() (ff654b5)

v1.10.0 (2024-12-10)

Features

  • layout_manager: Grid layout manager widget (17a63e3)

v1.9.1 (2024-12-10)

Bug Fixes

  • designer: General way to find python lib on linux (6563abf)

v1.9.0 (2024-12-10)

Features

  • side_menu: Side menu with stack widget added (c7d7c6d)

Testing

  • side_panel: Tests added (9b95b5d)

v1.8.0 (2024-12-10)

Features

  • modular_toolbar: Material icons can be added/removed/hide/show/update dynamically (a55134c)

  • modular_toolbar: Orientation setting (5fdb232)

  • round_frame: Rounded frame for plot widgets and contrast adjustments (6a36ca5)

Testing

  • modular_toolbar: Tests added (9370351)

v1.7.0 (2024-12-02)

Bug Fixes

  • tests: Add test for Console widget (da579b6)

Features

  • console: Add "prompt" signal to inform when shell is at prompt (3aeb0b6)

  • console: Add 'terminate' and 'send_ctrl_c' methods to Console (02086ae)

.terminate() ends the started process, sending SIGTERM signal. If process is not dead after optional timeout, SIGKILL is sent. .send_ctrl_c() sends SIGINT to the child process, and waits for prompt until optional timeout is reached. Timeouts raise 'TimeoutError' exception.

v1.6.0 (2024-11-27)

Bug Fixes

  • Add back accidentally removed variables (e998352)

  • Differentiate click and drag for DeviceItem, adapt tests accordingly (cffcdf2)

This fixes the blocking "QDrag.exec_()" on Linux, indeed before the drag'n'drop operation was started with a simple click and it was waiting for drop forever. Now there are 2 different cases, click or drag'n'drop - the drag'n'drop test actually moves the mouse and releases the button.

  • Do not quit automatically when last window is "closed" (96e255e)

Qt confuses closed and hidden

  • No need to call inspect.signature - it can fail on methods coming from C (like Qt methods) (6029246)

  • rpc: Gui hide/show also hide/show all floating docks (c27d058)

  • server: Use dock area by default (2fe7f5e)

  • tests: Make use of BECDockArea with client mixin to start server and use it in tests (da18c2c)

Depending on the test, auto-updates are enabled or not.

Features

  • '._auto_updates_enabled' attribute can be used to activate auto updates installation in BECDockArea (31d8703)

  • Add '--hide' argument to BEC GUI server (1f60fec)

  • Add main window container widget (f80ec33)

  • Add rpc_id member to client objects (3ba0b1d)

  • Asynchronous .start() for GUI (2047e48)

  • Do not take focus when GUI is loaded (1f71d8e)

  • client: Add show()/hide() methods to "gui" object (e68e2b5)

  • server: Add main window, with proper gui_id derived from given id (daf6ea0)

v1.5.3 (2024-11-21)

Bug Fixes

  • alignment_1d: Fix imports after widget module refactor (e71e3b2)

Continuous Integration

  • Fix ci syntax for package-dep-job (6e39bdb)

v1.5.2 (2024-11-18)

Bug Fixes

v1.5.1 (2024-11-14)

Bug Fixes

  • plugin_utils: Plugin utils are able to detect classes for plugin creation based on class attribute rather than if it is top level widget (7a1b874)

Refactoring

  • widgets: Widget module structure reorganised (aab0229)

v1.5.0 (2024-11-12)

Bug Fixes

  • crosshair: Crosshair adapted for multi waveform widget (0cd85ed)

Documentation

  • multi_waveform: Docs added (42d4f18)

Features

  • multi-waveform: New widget added (f3a39a6)

v1.4.1 (2024-11-12)

Bug Fixes

  • positioner_box: Adjusted default signals (8e5c0ad)

v1.4.0 (2024-11-11)

Bug Fixes

  • crosshair: Label of coordinates of TextItem displays numbers in general format (11e5937)

  • crosshair: Label of coordinates of TextItem is updated according to the current theme of qapp (4f31ea6)

  • crosshair: Log is separately scaled for backend logic and for signal emit (b2eb71a)

Features

  • crosshair: Textitem to display crosshair coordinates (035136d)

Testing

  • crosshair: Tests extended (64df805)

v1.3.3 (2024-11-07)

Bug Fixes

  • scan_control: Devicelineedit kwargs readings changed to get name of the positioner (5fabd4b)

Documentation

  • Update outdated text in docs (4f0693c)

v1.3.2 (2024-11-05)

Bug Fixes

  • plot_base: Legend text color is changed when changing dark-light theme (2304c9f)

Build System

  • Pyside6 version fixed 6.7.2 (c6e48ec)

v1.3.1 (2024-10-31)

Bug Fixes

  • ophyd_kind_util: Kind enums are imported from the bec widget util class (940ee65)

v1.3.0 (2024-10-30)

Bug Fixes

  • colors: Extend color map validation for matplotlib and colorcet maps (if available) (14dd8c5)

Features

  • colormap_button: Colormap button with menu to select colormap filtered by the colormap type (b039933)

v1.2.0 (2024-10-25)

Features

  • colors: Evenly spaced color generation + new golden ratio calculation (40c9fea)

Refactoring

  • Add bec_lib version to statusbox (5d4b86e)

v1.1.0 (2024-10-25)

Features

  • Add filter i/o utility class (0350833)

Refactoring

  • Allow to set selection in DeviceInput; automatic update of selection on device config update; cleanup (5eb15b7)

  • Cleanup, added device_signal for signal inputs (6fb2055)

  • Do not flush selection upon receiving config update; allow widgetIO to receive kwargs to be able to use get_value to receive string instead of int for QComboBox (91959e8)

Testing

  • scan_control: Tests added for grid_scan to ensure scan_args signal validity (acb7902)

v1.0.2 (2024-10-22)

Bug Fixes

  • scan_control: Scan args signal fixed to emit list instead of hardcoded structure (4f5448c)

v1.0.1 (2024-10-22)

Bug Fixes

  • waveform: Added support for live_data and data access (7469c89)

v1.0.0 (2024-10-18)

Bug Fixes

  • crosshair: Downsample clear markers (f9a889f)

Features

  • Ability to disable scatter from waveform & compatible crosshair with down sampling (2ab12ed)

v0.119.0 (2024-10-17)

Bug Fixes

  • Alignment 1D update, make app window a main window (in .ui file) (0015f0e)

  • Fix syntax due to change of api for simulated devices (19f4e40)

  • Remove wrongly scoped test (a23841b)

  • Rename 'compact' property -> 'compact_view' (6982711)

  • Set (Minimum, Fixed) size policy on Stop button (523cc43)

Features

  • Add 'expand_popup' property to CompactPopupWidget (e4121a0)

This property tells if expand should show a popup (by default), or if the widget should expand in-place

  • Emit 'device_selected' and 'scan_axis' from scan control widget (0b9b1a3)

  • New 'device_selected' signals to ScanControl, ScanGroupBox, DeviceLineEdit (9801d27)

  • New PositionerGroup widget (af9655d)

  • Positionerbox with a popup view (2615787)

Refactoring

  • Move add/remove bundle to scan group box (e3d0a7b)

  • Redesign of scan selection and scan control boxes (a69d287)

v0.118.0 (2024-10-13)

Documentation

  • sphinx-build: Adjusted pyside verion (b236951)

Features

  • image: Image widget can take data from monitor_1d endpoint (9ef1d1c)

v0.117.1 (2024-10-11)

Bug Fixes

  • FPS: Qtimer cleanup leaking (3a22392)

v0.117.0 (2024-10-11)

Features

  • utils: Fps counter utility based on the viewBox updates, integrated to waveform and image widget (8c5ef26)

v0.116.0 (2024-10-11)

Build System

Features

  • Adapt BECQueue and BECStatusBox widgets to use CompactPopupWidget (94ce92f)

  • Add 'CompactPopupWidget' container widget (49268e3)

Makes it easy to write widgets which can have a compact representation with LED-like global state indicator, with the possibility to display a popup dialog with more complete UI

  • Ui changes to have top toolbar with compact popup widgets (fix issue #360) (499b6b9)

v0.115.0 (2024-10-08)

Bug Fixes

  • Adjust bec_qthemes dependency (b207e45)

  • Make Alignment1D a MainWindow as it is an application (c5e9ed6)

Features

  • Add bec-app script to launch applications (8bf4842)

v0.114.0 (2024-10-02)

Bug Fixes

  • Prevent exception when empty string updates are coming from widget (04cfb1e)

  • Use new 'scan_axis' signal, to set_x and select x axis on waveform (efa2763)

Fixes #361, do not try to change x axis when not permitted

Features

Signal is emitted before "scan_started", to inform about scan positioner and (start, stop) positions. In case of multiple bundles, the signal is emitted multiple times.

v0.113.0 (2024-10-02)

Bug Fixes

  • Add is_log checks and functionality to plot_indicator_items (0f9953e)

Features

  • Add first draft for alignment_1d GUI (63c24f9)

  • Add move to position button to lmfit dialog (281cb27)

Refactoring

  • Add proxy to waveform to limit the dap_request frequency (5c74037)

  • Allow hiding of arg/kwarg boxes (efe90eb)

  • Linear_region_selector accepts log_x data (7cc0726)

  • Update dap_model also if x and y axis are selected (28ee385)

  • Use accent colors for bec_status_box icons; closes #338 (e039304)

  • Various minor improvements for the alignment gui (f554f3c)

Testing

  • Add tests for scan_status_callback (dc0c825)

v0.112.1 (2024-09-19)

Bug Fixes

  • Test e2e dap wait_for_fit (b2f7d3c)

Documentation

  • dap_combo_box: Updated screenshot (e3b5e33)

  • device_box: Updated screenshot (c8e614b)

v0.112.0 (2024-09-17)

Features

  • Console: various improvements, auto-adapt rows to widget size, Qt Designer plugin (286ad71)

v0.111.0 (2024-09-17)

Bug Fixes

  • generate_cli: Fixed type annotations (d3c1a1b)

  • palette viewer: Fixed background for tool tip (9045323)

  • position_indicator: Fixed user access (dd932dd)

  • positioner_box: Visual improvements to the positioner_box and positioner_control_line (7ea4a48)

Documentation

  • position_indicator: Updated position indicator documentation and added designer properties (60f7d54)

Features

  • position_indicator: Improved design and added more customization options (d15b222)

v0.110.0 (2024-09-12)

Features

  • palette_viewer: Added widget to display the current palette and accent colors (a8576c1)

v0.109.1 (2024-09-09)

Bug Fixes

  • Refactor textbox widget, remove inheritance, adhere to bec style; closes #324 (b0d786b)

v0.109.0 (2024-09-06)

Bug Fixes

  • theme: Fixed theme access for themecontainer (de303f0)

Features

  • accent colors: Added helper function to get all accent colors (84a59f7)

v0.108.0 (2024-09-06)

Documentation

  • progressbar: Added docs (7d07cea)

Features

  • generate_cli: Added support for property and qproperty setter (a52182d)

  • progressbar: Added bec progressbar (f6d1d0b)

v0.107.0 (2024-09-06)

Documentation

Features

  • Add roi select for dap, allow automatic clear curves on plot request (7bdca84)

Refactoring

  • Change style to bec_accent_colors (bd126dd)

Testing

  • Add tests, including extension to end-2-end test (b1aff6d)

v0.106.0 (2024-09-05)

Features

  • plot_base: Toggle to switch outer axes for plotting widgets (06d7741)

Refactoring

  • Use DAPComboBox in curve_dialog selection (998a745)

Testing

v0.105.0 (2024-09-04)

Features

Refactoring

  • Cleanup and renaming of slot/signals (0fd5cee)

  • logger: Changed prints to logger calls (3a5d7d0)

v0.104.0 (2024-09-04)

Bug Fixes

  • scan_control: Safeslot applied to run_scan to avoid faulty scan requests (9047916)

  • scan_control: Scan parameters can be loaded from the last executed scan from redis (ec3bc8b)

  • toggle: State can be determined with the widget initialisation (2cd9c7f)

Documentation

  • scan_control: Docs extended (730e25f)

Features

  • scan_control: Scan control remember the previously set parameters and shares kwarg settings across scans (d28f9b0)

Refactoring

  • scan_control: Basic pydantic config added (fe8dc55)

  • scan_control: Scan control layout adjusted (85dcbda)

Testing

  • conftest: Only run cleanup checks if test passed (26920f8)

  • scan_control: Tests extended for getting kwargs between scan switching and getting parameters from redis (b07e677)

v0.103.0 (2024-09-04)

Bug Fixes

  • theme: Fixed segfault for webengineview for auto updates (9866075)

Continuous Integration

  • Prefill variables for manual pipeline start (158c19e)

Features

  • vscode: Open vscode on a free port (52da835)

  • website: Added method to wait until the webpage is loaded (9be19d4)

Testing

  • vscode: Popen call does not have to be the only one (39f98ec)

  • webview: Fixed tests after refactoring (d5eb30c)

v0.102.0 (2024-09-04)

Bug Fixes

  • queue_reset_button: Queue reset has to be confirmed with msgBox (9dd43aa)

Documentation

  • buttons: Buttons section of docs split to appearance and queue buttons (047aa26)

  • tests: Added tests tutorial for widget (18d8561)

Features

  • queue: Becqueue controls extended with Resume, Stop, Abort, Reset buttons (0d7c10e)

Refactoring

  • tests: Positioner box test changed to use create_widget fixture (df5eff3)

v0.101.0 (2024-09-02)

Features

Refactoring

v0.100.0 (2024-09-01)

Bug Fixes

  • pyqt slot: Removed slot decorator to avoid problems with pyqt6 (6c1f89a)

Documentation

  • becwidget: Improvements to the bec widget base class docs; fixed type hint import for sphinx (99d5e8e)

Features

  • theme: Added theme handler to bec widget base class; added tests (7fb938a)

v0.99.15 (2024-08-31)

Bug Fixes

  • positioner_box: Fixed positioner box dialog; added test; closes #332 (0bf1cf9)

  • theme: Update pg axes on theme update (af23e74)

v0.99.14 (2024-08-30)

Bug Fixes

  • color_button: Inheritance changed to QWidget (3c0e501)

  • color_button: Signal and slot added for selecting color and for emitting color after change (99a98de)

v0.99.13 (2024-08-30)

Bug Fixes

  • dark mode button: Fixed dark mode button state for external updates, including auto (a3110d9)

Documentation

  • Minor updates to the widget tutorial (ec9c8f2)

  • widget tutorial: Step by step guide added (b32ced8)

v0.99.12 (2024-08-29)

Bug Fixes

  • abort_button: Abort button added; some minor fixes (a568633)

  • reset_button: Reset button added (6ed1efc)

  • toolbar: Widget action added (2efd487)

v0.99.11 (2024-08-29)

Bug Fixes

  • resume_button: Resume button added (8be8295)

Refactoring

  • Add option to select scan and hide arg bundle buttons (7dadab1)

  • icons: General app icon changed; jupyter app icon changed to material icon (5d73fe4)

v0.99.10 (2024-08-29)

Bug Fixes

  • stop_button: Queue logic scan changed to halt instead of abort and reset (4a89028)

Refactoring

  • Added hide option for device selection button (cdd1752)

  • stop_button: Stop button changed to QWidget and adapted for toolbar (097946f)

v0.99.9 (2024-08-28)

Bug Fixes

  • Fixed build process and excluded docs and tests from tarballs and wheels (719254c)

v0.99.8 (2024-08-28)

Bug Fixes

  • website: Fixed designer integration for website widget (5f37e86)

Refactoring

  • website: Changed inheritance of website widget to simple qwidget; closes #325 (9925bbd)

v0.99.7 (2024-08-28)

Bug Fixes

  • toolbar: Material icons can accept color as kwarg (ffc871e)

v0.99.6 (2024-08-28)

Bug Fixes

  • toolbar: Use of native qt separators (09c6c93)

Documentation

v0.99.5 (2024-08-28)

Bug Fixes

  • dock_area: Dark button added (e6f204b)

Documentation

  • index: Index page is centered (02239de)

v0.99.4 (2024-08-28)

Bug Fixes

  • theme: Apply theme to all pyqtgraph widgets on manual updates (c550186)

Documentation

  • buttons: Added missing buttons docs (4e5520a)

  • developer: Tutorial for BECWidget base class (ac2cb51)

Refactoring

  • buttons: Changed grid and thumbnail fig in gallery (4591ba8)

  • icons: Moved widget icons to class attribute ICON_NAME (e890091)

  • icons: Removed toolbar icons from assets (f335763)

v0.99.3 (2024-08-27)

Bug Fixes

  • cmaps: Unified all defaults to magma cmap (1ca9499)

  • color maps: Color maps should take the background color into account; fixed min colors to 10 (060935f)

Build System

  • Updated min version of bec qthemes (d482434)

v0.99.2 (2024-08-27)

Bug Fixes

  • widgets: Fixed default theme for widgets (cf28730)

If not theme is set, the init of the BECWidget base class sets the default theme to "dark"

Continuous Integration

  • Additional tests are not allowed to fail (bb385f0)

v0.99.1 (2024-08-27)

Bug Fixes

  • crosshair: Emit all crosshair events, not just line coordinates (2265458)

v0.99.0 (2024-08-25)

Bug Fixes

  • toggle: Emit state change (c4f3308)

Documentation

  • darkmodebutton: Added dark mode button docs (406c263)

Features

  • darkmodebutton: Added button to toggle between dark and light mode (cc8c166)

Refactoring

  • darkmodebutton: Renamed set_dark_mode_enabled to toggle_dark_mode (c70724a)

Testing

  • dark_mode_button: Added tests for dark mode button (df35aab)

v0.98.0 (2024-08-25)

Bug Fixes

  • Fix color palette if qtheme was not called (3f3b207)

  • Transitioning to material icons (2a82032)

  • Use globally set theme instead of the internal bec widgets theme (77c5aa7)

  • dock_area: Transitioned to MaterialIconAction (88a2f66)

  • figure: Removed theme from figure init (e42b84c)

  • toolbar: Removed hardcoded color values (afdf4e8)

  • waveform: Fixed icon appearance (36ad464)

Features

  • themes: Added set_theme method (2b4449a)

Refactoring

  • waveform: Use set theme for demo (44cfda1)

v0.97.0 (2024-08-23)

Bug Fixes

  • toolbar icon: Fixed material icon toolbar for theme changes (3ecbd60)

Features

  • designer: Added designer icon factory (82a55dd)

v0.96.3 (2024-08-23)

Bug Fixes

  • Minor fixes for type annotations (8c2e7c8)

Documentation

v0.96.2 (2024-08-22)

Bug Fixes

  • waveform: Skip validation for curves that are not BECCurve instances (617db36)

  • waveform: Validation of custom curves removed (af28574)

v0.96.1 (2024-08-22)

Bug Fixes

  • Bubble-up signals (2fe72c9)

  • crosshair: Fixed crosshair for image and waveforms (37835cb)

  • crosshair: Update markers if necessary (4473805)

  • waveform_widget: Fixed icon appearance (f98a9f9)

Continuous Integration

  • Fail pytest after 2 failed tests (f0203d9)

v0.96.0 (2024-08-22)

Documentation

  • scan_control: Added designer options (9d7718c)

Features

  • scan_control: Added the ability to configure the scan control widget from designer (9d8fb0b)

v0.95.1 (2024-08-22)

Bug Fixes

  • docs: Changed link to scan gui config in main docs (640464a)

Documentation

Refactoring

  • Moved to dynamically loaded material design icons (1d2afaa)

  • Removed designer pngs (84abe46)

v0.95.0 (2024-08-21)

Bug Fixes

  • device_browser: Fixed plugin assignment for designer (6500393)

Documentation

  • Added sphinx-inline-tabs as sphinx dependency (e9ecd26)

  • cards: Changed index cards to custom css class instead of overwriting the default sd-card theme (91ba30e)

  • device_browser: Added user docs (2c31cc9)

  • user: Widget gallery with documentation added (7357f3d)

Features

  • cli: Added device_browser to cli (196504b)

  • widgets: Added device_browser widget (73f5a2f)

Refactoring

Testing

  • Added test for device browser (e870e5b)

v0.94.7 (2024-08-20)

Bug Fixes

  • Formatting of stdout, stderr captured text for logger (939f834)

v0.94.6 (2024-08-14)

Bug Fixes

  • server: Emit heartbeat with state (bc2abe9)

v0.94.5 (2024-08-14)

Bug Fixes

  • Removed qcoreapplication for polling events (4d02b42)

  • rpc: Use client singleton instead of dispatcher (ea9240d)

Build System

  • Increased min version of bec to 2.21.4 (4f96d0e)

Since we now rely on reusing the BECClient singleton, we need the fix introduced with 2.21.4 in BEC.

v0.94.4 (2024-08-14)

Bug Fixes

  • Do not shutdown client in "close" (198c1d1)

Terminating client connections has to be done at the application level

Documentation

  • Review developer section; add introduction (2af5c94)

v0.94.3 (2024-08-13)

Bug Fixes

  • curve_dialog: Async curves are shown in curve dialog after addition. (7aeb2b5)

  • waveform: Async device entry is correctly passed, updated and with new scan the previous data are cleared (d56ea95)

Testing

  • waveform_widget: Added tests for axis setting and curve dialog (f285b35)

v0.94.2 (2024-08-13)

Bug Fixes

  • image: Image is single image mode do not raise popup error when connected twice with the same monitor (98b79aa)

v0.94.1 (2024-08-12)

Bug Fixes

  • Issue #292, wrong key was used to clean _slots internal dictionary (93d3977)

v0.94.0 (2024-08-08)

Features

  • Add PositionerControlLine (c80a7cd)

Refactoring

v0.93.5 (2024-08-08)

Bug Fixes

  • positioner_box: Icons fixed (281633d)

Refactoring

  • Add button for positioner selection (0d190c5)

Testing

  • auto-update: Wait for rendering (6d2442d)

  • dap: Wait for fit (6269009)

v0.93.4 (2024-08-07)

Bug Fixes

  • Add validation for bec_lib.device.Positioner; closes #268 (eb54e9f)

  • Rename DeviceBox to PositionerBox, fix test for validation (37aa371)

v0.93.3 (2024-08-07)

Bug Fixes

  • dock: Properly shut down docks and dock areas (bc26497)

  • dock: Properly shut down docks and temp areas (99ee545)

  • figure: Cleanup pyqtgraph (ad07bbf)

  • settings: Shut down settings dialog (b50b3a2)

  • website: Fixed teardown of website widgets (a3d4f5a)

Testing

  • Ensure all toplevelwidgets are closed (f9e5897)

  • Removed explicit call to close the widget (bf6294e)

  • Removed quit from teardown (cf94599)

  • Use factory instead of fixture to properly cleanup widgets on teardown (9856857)

v0.93.2 (2024-08-07)

Bug Fixes

  • scan_group_box: Scan Spinboxes limits increased to max allowed values; setting dialog for step size and decimal precision for ScanDoubleSpinBox on right click (a372925)

v0.93.1 (2024-08-06)

Bug Fixes

  • dock: Docks have more recognizable red icon for closing docks (af86860)

Documentation

  • Added video tutorial section with BSEG YT video (302ae90)

v0.93.0 (2024-08-05)

Features

  • themes: Moved themes to bec_qthemes (5aad401)

This reverts commit fd6ae91993

v0.92.5 (2024-08-05)

Bug Fixes

  • spinner: Stop timer on close event (30fef92)

  • status_box: Fix cleanup of status box (1f30dd7)

Refactoring

  • queue: Refactored bec queue to inherit only from qwidget (7616ca0)

Testing

  • Register all widgets with qtbot and close them (73cd11e)

v0.92.4 (2024-07-31)

Bug Fixes

  • Fix missmatch of signal/slot in image and motormap (dcc5fd7)

v0.92.3 (2024-07-28)

Bug Fixes

v0.92.2 (2024-07-28)

Bug Fixes

  • widgets: Fixed import for tictactoe example (995a795)

v0.92.1 (2024-07-28)

Bug Fixes

  • Add xvfb to draw offscreen (3d681f7)

  • Always add a QApplication for tests (61a4e32)

  • Linting (a3fe205)

  • Metaclass + QObject segfaults PyQt(cpp bindings) (fc57b7a)

  • Reset ErrorPopup singleton between tests (5a9ccfd)

  • Use SafeSlot instead of Slot (bc1e239)

Build System

  • ci: Install ophyd_devices in editable mode for pipelines (06205e0)

Refactoring

  • Rename device_monitor to device_monitor_2d (714e1e1)

  • Renamed DeviceMonitor2DMessage (4be6fd6)

v0.92.0 (2024-07-24)

Bug Fixes

  • device_combobox: Set minimum size to 125px (1206e15)

  • dock: Custom label can be created closable (4457ef2)

Features

  • dock: Dock style sheets updated (8ca60d5)

  • general_gui: General gui added (5696c99)

v0.91.0 (2024-07-23)

Bug Fixes

  • plugins: Qt Designer plugins icons adjusted (f4844d2)

  • status_item: Icons changed to material design (1b9c55a)

Features

  • dock_area: Added toolbar to dock area to add widgets without CLI interactions (cce1367)

  • dock_area: Plugin added (a16b87a)

  • toolbar: Expandable menu actions (28f26e9)

Testing

  • dock_area: Tests extended (06fab0e)

v0.90.0 (2024-07-23)

Bug Fixes

  • axis_setting: Fix compatibility for issue with horizontal line for PyQt6 (1cf6e32)

  • image: Only single monitor image is allowed (fe7e542)

  • image: Raw data are saved in image item to always have precise processing (c15035b)

  • image_widget: Image widget adjusted (3d2ca48)

  • image_widget: Image_widget autorange fixed (7f49893)

Features

  • image_widget: All toolbar actions added (501eb92)

  • image_widget: Image_widget added (6a9317f)

  • image_widget: Plugin added (4371168)

Refactoring

  • jupyter_console_example: Added examples of standalone widgets (ba0d1ea)

Testing

  • image_widget: Tests added (70fb276)

v0.89.0 (2024-07-22)

Features

  • themes: Moved themes to bec_qthemes (3798714)

v0.88.1 (2024-07-22)

Bug Fixes

  • plot_base: Set_xy autorange moved to plotbase from waveform (a3dff7d)

Documentation

  • Readthedocs icon path fixed (2bcaa42)

Refactoring

  • toolbar: Generalizations of the ToolBarAction (ad112d1)

v0.88.0 (2024-07-19)

Bug Fixes

  • colormap_selector: Compatibility for PyQt6 when using designer fixed (50135b5)

  • waveform: Colormaps of curves can be changed and normalised (33495cf)

feat(waveform): colormap can be changed from curve dialog

fix(curve_dialog): default dialog parameters fixed

curve Dialog colormap WIP

  • waveform_widget: Adapted for BECWidget base class (6eb313f)

  • waveform_widget: Adapted for changes from improved scan logic from waveform widget (8ac35d7)

  • waveform_widget: Plot API unified with BECFigure (2c8764a)

  • waveform_widget: Temporary disabled save/load config (7089cf3)

  • waveform_widget: Use @SafeSlot decorator for automatic error message (8e588d7)

Features

  • curve_dialog: Add DAP functionality (e830565)

  • curve_dialog: Curves can be added (c926a75)

  • figure: Export dialog can be launched from CLI and from toolbar (6ff6111)

  • waveform: Export to matplotlib window of current scene (8d93405)

  • waveform_widget: Added error handle utility (a8ff1d4)

  • waveform_widget: Autorange button (8df6b00)

  • waveform_widget: Becwaveformwidget added with toolbar (755b394)

  • waveform_widget: Becwaveformwidget toolbar added import/export config (fa9b171)

  • waveform_widget: Dap parameter window (1e551d6)

  • waveform_widget: Designer plugin added (1f8ef52)

  • waveform_widget: Switch between drag and rectangle mode (2be009c)

Refactoring

  • icons: Icons moved to the assets directory (a8b6ef2)

  • waveform_widget: Removed PYSIDE6 check (47fcb9e)

Testing

  • waveform_widget: Test added (8d764e2)

v0.87.1 (2024-07-18)

Bug Fixes

  • Add exit handlers for BECConnection objects (6202d22)

  • Add missing close() call, ensure jupyter console client.shutdown() is called in closeEvent (e52ee26)

  • Becwidget checks if it is a widget, and implements closeEvent and cleanup (d64758f)

  • dock: Added hasattr to cleanup method for widgets (d75c55b)

Refactoring

  • Becwidget is a mixin based on BECConnector, for each QWidget in BEC (c7feb69)

Handles closeEvent() and RPC registering/unregistering

v0.87.0 (2024-07-17)

Features

  • qt_utils: Added error handle utility with popup messageBoxes (196ef7a)

  • qt_utils: Added warning utility with simple API to setup warning message (787f749)

v0.86.0 (2024-07-17)

Features

  • toolbar: Added separator action (ba69e79)

v0.85.1 (2024-07-17)

Bug Fixes

  • waveform: Readout_priority dict fixed, not overwritten to 'baseline' key (b5b0aa4)

v0.85.0 (2024-07-16)

Features

  • color_map_selector: Added colormap selector with plugin (b98fd00)

v0.84.0 (2024-07-15)

Bug Fixes

  • bec_dispatcher: Connect_slot can accept kwargs (0aa317a)

  • waveform: Dap leaked RID for all daps in current process; dap RID is now f"{scan_id}-{gui_id}" to distinguish for each plot instance (d23fd8b)

  • waveform: Data for axis are taken by separate method; validation consolidated (fc5a8bd)

  • waveform: Only one type of x axis allowed; x mode validated (9d6ae87)

  • waveform: Set_x method various bugs fixed (8516a1d)

  • waveform: Timestamp are not converted to human readable format (e495fd3)

  • waveform: X axis switching logic fixed when axis are not compatible (e4e1a90)

Features

  • waveform: Async readback update implemented for async devices (0c6a9f2)

  • waveform: Data are taken directly from ScanItem which is defined from scan_status endpoint; scan update is triggered from scan_segment; plots can be added just specifying y_name -> best effort for setting x reported device (b8717f1)

Refactoring

  • jupyter_console_window: Added more examples of waveforms (fc935d9)

  • waveform: Plot can be prompted without specifying kwargs (48911e9)

Testing

  • waveform: Tests extended (006992e)

v0.83.1 (2024-07-14)

Bug Fixes

  • Replace pyqtdarktheme by qdarkstyle, add 'apply_theme' function (in utils/colors.py) (8308115)

  • Spinner: update reference image for widget test, use apply_theme (63db135)

  • Use apply_theme (2d4249e)

  • toolbar: Default transparent background (eab7883)

Testing

  • toolbar: Added reference pngs for spinner for Darwin (11a7204)

v0.83.0 (2024-07-08)

Bug Fixes

  • bec_widget: Added cleanup method to bec widget base class (fd8766e)

  • terminal: Added default args to avoid designer crashes on startup (360d171)

  • website: Fixed dummy input (903ce7d)

  • widget: Fixed widget cleanup routine (2b29e34)

Features

  • Added reference utils to compare renderings of widgets (2988fd3)

  • designer: Added option to skip the widget validation for DesignerPluginGenerator (41bcb80)

  • widgets: Added device box with spinner (1b017ed)

Testing

  • vscode: Fixed vscode tests for new cleanup routine (eb26e2a)

  • vscode: Improved vscode test (5de8804)

v0.82.2 (2024-07-08)

Bug Fixes

  • rpc_server: Pass cli config to server (90178e2)

v0.82.1 (2024-07-07)

Bug Fixes

  • motor_map: Bug where motors without limits were selected (c78cd89)

Refactoring

  • setting_dialog: Moved to qt_utils (3826bb3)

  • toolbar: Toolbar moved from widgets to qt_utils (7ffc06f)

Testing

  • setting_dialog: Tests added (74a249b)

v0.82.0 (2024-07-07)

Features

  • toggle: Added angular component-like toggle (b9bff38)

Refactoring

  • color_button: Colorbutton moved to top level of widgets (fa1e86f)

  • device_input: Devicecombobox and DeviceLineEdit moved to top layer of widgets (f048629)

  • motor_map_widget: Removed restriction of only PySide6 for widget (db1cdf4)

  • stop_button: Moved to top layer, plugin added (f5b8375)

v0.81.2 (2024-07-07)

Bug Fixes

  • waveform: Scan_history error check for IndexError (dd1875e)

v0.81.1 (2024-07-07)

Bug Fixes

  • motor_control: Temporary remove of motor control widgets (99114f1)

v0.81.0 (2024-07-06)

Features

  • color_button: Can get colors in RGBA or HEX (9594be2)

v0.80.1 (2024-07-06)

Bug Fixes

  • entry_validator: Check for entry == "" (61de7e9)

v0.80.0 (2024-07-06)

Features

  • plugins: Added bec widgets base class (1aa83e0)

  • plugins: Added support for pyqt6 ui files (d6d0777)

  • plugins: Moved plugin dict to dataclass and container (03819a3)

  • qt5: Dropped support for qt5; pyside2 and pyqt5 (fadbf77)

v0.79.3 (2024-07-05)

Bug Fixes

  • Add designer plugin classes (1586ce2)

  • Changed inheritance to adress qt designer bug in rendering (e403870)

Refactoring

  • Simplify logic in bec_status_box (576353c)

v0.79.2 (2024-07-04)

Bug Fixes

  • Overwrite closeEvent and call super class (bc0ef78)

v0.79.1 (2024-07-03)

Bug Fixes

  • Use libdir env var to preload Python library, also for Linux platform (d7718d4)

v0.79.0 (2024-07-03)

Bug Fixes

  • motor_map: Fixed bug with residual trace after changing motors (aaa0d10)

  • toolbar: Change default color to black to match BECFigure theme (b8774e0)

  • widget_io: Widget handler adjusted for spinboxes and comboboxes (3dc0532)

Features

  • motor_map: Method to reset history trace (5960918)

  • motor_map_widget: Standalone MotorMap Widget with toolbar + plugin (6e75642)

Refactoring

  • toolbar: Cleanup and adjusted colors (96863ad)

v0.78.1 (2024-07-02)

Bug Fixes

  • ui_loader: Ui loader is compatible with bec plugins (b787759)

v0.78.0 (2024-07-02)

Features

  • color_button: Patched ColorButton from pyqtgraph to be able to be opened in another QDialog (c36bb80)

v0.77.0 (2024-07-02)

Bug Fixes

  • bec_figure: Full reconstruction with config from other bec figure (b6e1e20)

  • bec_figure: Waveforms can be initialised from the config; widgets are deleteLater after removal (78673ea)

  • figure: Api cleanup (008a33a)

  • figure: If/else logic corrected in subplot_factory (3e78723)

  • figure: Subplot methods consolidated; added subplot factory (4a97105)

  • image: Image add_custom_image fixed, closes #225 (f0556e4)

  • image: Image can be fully reconstructed from config (797f73c)

  • image: Processing of already displayed data; closes #106 (1173510)

  • image_item: Vrange added int for pydantic model check (b8f796f)

  • motor_map: Api changes updates current visualisation; motor_map can be initialised from config (2e2d422)

  • waveform: Scatter 2D brush error (215d59c)

Features

  • bec_connector: Export config to yaml (a391f30)

  • utils: Colors added convertor for rgba to hex (572f2fb)

v0.76.1 (2024-06-29)

Bug Fixes

  • plugins: Fixes and tests for auto-gen plugins (c42511d)

v0.76.0 (2024-06-28)

Bug Fixes

  • Fixed qwidget inheritance for ring progress bar (0610d2f)

Features

  • designer: Added support for creating designer plugins automatically (c1dd0ee)

v0.75.0 (2024-06-26)

Features

  • widgets: Added simple bec queue widget (3faee98)

Refactoring

v0.74.1 (2024-06-26)

Bug Fixes

  • motor_map: Motor map can be removed from BECFigure with .remove() (6b25abf)

  • rings: Rings properties updated right after setting (c8b7367)

Build System

  • Added missing pytest-bec-e2e dependency; closes #219 (56fdae4)

  • Fixed dependency ranges; closes #135 (e6a06c9)

Chores

  • Sorted dependencies alphabetically (21c807f)

Documentation

Testing

  • bec_figure: Tests for removing widgets with rpc e2e (a268caa)

v0.74.0 (2024-06-25)

Documentation

Features

  • waveform1d: Dap LMFit model can be added to plot (1866ba6)

Testing

  • waveform1d: Dap e2e test added (7271b42)

v0.73.2 (2024-06-25)

Bug Fixes

  • rpc: Remove of calling "close" and waiting for gui_is_alive (f75fc19)

  • rpc: Trigger shutdown of server when gui is terminated (acc1318)

  • vscode: Only run terminate if the process is still alive (7120f3e)

v0.73.1 (2024-06-25)

Bug Fixes

  • ringprogressbar: Removed hard-coded endpoint strings (1de3cbf)

v0.73.0 (2024-06-25)

Features

  • Add new default scaling of image_item (df812ea)

Testing

v0.72.2 (2024-06-25)

Bug Fixes

  • designer: Fixed designer for pyenv and venv; closes #237 (e631fc1)

v0.72.1 (2024-06-24)

Bug Fixes

  • Renamed spiral progress bar to ring progress bar; closes #235 (e5c0087)

Testing

  • Bugfix to prohibit leackage of mock (4348ed1)

v0.72.0 (2024-06-24)

Features

  • connector: Added threadpool wrapper (4ca1efe)

v0.71.1 (2024-06-23)

Bug Fixes

  • Don't print exception if the auto-update module cannot be found in plugins (860517a)

v0.71.0 (2024-06-23)

Bug Fixes

  • cleanup: Cleanup added to device_input widgets and scan_control (8badb6a)

  • scan_control: Adapted widget to scan BEC gui config (8b822e0)

  • scan_control: Added default min limit for args bundle if specified (ec4574e)

  • scan_control: Argbox delete later added to prevent overlapping gui if scan changed (7ce3a83)

  • scan_control: Only scans with defined gui_config are allowed (6dff187)

  • scan_control: Scan_control.py combatible with the newest BEC versions, test disabled (67d398c)

  • scan_group_box: Added row counter based on widgets (37682e7)

  • WidgetIO: Find handlers within base classes (ca85638)

Features

  • scan_group_box: Scan box for args and kwargs separated from ScanControlGUI code (d8cf441)

Refactoring

  • device_line_edit: Renamed default_device to default (4e2c9df)

Testing

  • scan_control: Tests added (56e74a0)

v0.70.0 (2024-06-21)

Bug Fixes

  • bec-desiger+plugins: Imports fixed, PYSIDE6 check to not enable run plugins with pyqt6 (50b3422)

Documentation

Features

  • Added entry point for bec-designer (36391db)

  • bec-designer: Automatic plugin discovery (4639eee)

  • device_combobox: Plugin added to bec-designer (e483b28)

  • device_line_edit: Plugin added to bec-designer (b4b27ae)

  • utils/bec-designer: Added startup script to launched QtDesigner compatible with conda environments (5362334)

v0.69.0 (2024-06-21)

Bug Fixes

  • generate_cli: Fixed rpc generate for classes without user access; closes #226 (925c893)

Features

  • widgets: Added vscode widget (48ae950)

v0.68.0 (2024-06-21)

Bug Fixes

  • Do not create 'BECClient' logger when instantiating BECDispatcher (f7d0b07)

  • Ignore GUI server output (any output will go to log file) (ce37416)

If a logger is given to log _start_log_process, the server stdout and stderr streams will be redirected as log entries with levels DEBUG or ERROR in their parent process

Features

  • Add logger for BEC GUI server (630616e)

  • Bec-gui-server: redirect stdout and stderr (if any) as proper debug and error log entries (d1266a1)

  • Properly handle SIGINT (ctrl-c) in BEC GUI server -> calls qapplication.quit() (3644f34)

v0.67.0 (2024-06-21)

Documentation

  • Add widget to documentation (6fa1c06)

Features

  • Introduce BECStatusBox Widget (443b6c1)

Refactoring

  • Change inheritance to QTreeWidget from QWidget (d2f2b20)

Testing

  • Add test suite for bec_status_box and status_item (5d4ca81)

v0.66.1 (2024-06-20)

Bug Fixes

  • Fixed shutdown for pyside (2718bc6)

v0.66.0 (2024-06-20)

Features

  • rpc: Discover widgets automatically (ef25f56)

v0.65.2 (2024-06-20)

Bug Fixes

  • pyqt: Webengine must be imported before qcoreapplication (cbbd23a)

v0.65.1 (2024-06-20)

Bug Fixes

  • Prevent segfault by closing the QCoreApplication, if any (fa344a5)

v0.65.0 (2024-06-20)

Bug Fixes

  • device_input_base: Bug with setting config and overwriting default device and filter (d79f7e9)

Features

  • device_combobox: Deviceinputbase and DeviceComboBox added (430b282)

  • device_input: Devicelineedit with QCompleter added (50e41ff)

Testing

  • device_input: Tests added (1a0a98a)

v0.64.2 (2024-06-19)

Bug Fixes

  • client_utils: Added close rpc command to shutdown of gui from bec_ipython_client (e5a7d47)

v0.64.1 (2024-06-19)

Bug Fixes

  • widgets: Removed widget module import of sub widgets (216511b)

Refactoring

  • utils: Moved get_rpc_widgets to plugin_utils (6dabbf8)

Testing

v0.64.0 (2024-06-19)

Bug Fixes

  • plot_base: Font size is set with setScale which is scaling the whole legend window (5d66720)

Continuous Integration

  • Add job optional dependency check (27426ce)

Documentation

  • Fix links in developer section (9e16f2f)

  • Refactor developer section, add widget tutorial (2a36d93)

Features

  • Add option to change size of the fonts (ea805d1)

Testing

v0.63.2 (2024-06-14)

Bug Fixes

  • Do not import "server" in client, prevents from having trouble with QApplication creation order (6f96498)

Like with QtWebEngine

v0.63.1 (2024-06-13)

Bug Fixes

  • Just terminate the remote process in close() instead of communicating (9263f8e)

The proper finalization sequence will be executed by the remote process on SIGTERM

v0.63.0 (2024-06-13)

Documentation

Features

Refactoring

  • Add pydantic config, add change_theme (6b8432f)

Testing

v0.62.0 (2024-06-12)

Features

  • Implement non-polling, interruptible waiting of gui instruction response with timeout (abc6caa)

v0.61.0 (2024-06-12)

Features

  • widgets/stop_button: General stop button added (61ba08d)

Refactoring

  • Improve labe of auto_update script (40b5688)

v0.60.0 (2024-06-08)

Bug Fixes

  • Added bec_ipython_client as dependency; needed for jupyter widget (006a089)

  • Removed BECConnector from rpc client interface (6428e38)

  • bec_connector: Field validator should be a classmethod (867720a)

  • BECFigure: Removed duplicated user access for plot (954c576)

Continuous Integration

Features

  • Added entry point for bw-generate-cli (1c7f491)

  • Added isort to bw-generate-cli (f0391f5)

  • cli: Auto-discover rpc-enabled widgets (df1be10)

Refactoring

  • Disabled pylint for auto-gen client (b15816c)

  • Minor cleanup (3adf6cf)

  • dock: Parent_dock_area changed to orig_area (native for pyqtgraph) (2b40602)

  • isort: Added bec_widgets as known first party package (9c5a471)

Testing

  • Added missing pylint statement to header (f662985)

v0.59.1 (2024-06-07)

Bug Fixes

  • curve: Set_color_map_z typo fixed in user access (e7838b0)

v0.59.0 (2024-06-07)

Build System

  • Added webengine dependency (d56c549)

Continuous Integration

  • Added webengine dependencies (2d79ef8)

  • Merged additional tests to parallel matrix job (178fe4d)

Documentation

Features

  • widget: Added simple website widget with rpc (64abd67)

v0.58.1 (2024-06-07)

Bug Fixes

  • dock: New dock can be detached upon creation (02a2608)

v0.58.0 (2024-06-07)

Bug Fixes

  • Bar colormap dynamic setting (67fd5e8)

  • Formatting isort (bf699ec)

  • curve: 2d scatter updated if color_map_z is changed (6985ff0)

  • curve: Color_map_z setting works (33f7be4)

Features

  • utils.colors: General color validators (3094632)

Testing

  • color: Validation tests added (c0ddece)

v0.57.7 (2024-06-07)

Bug Fixes

  • Add model_config to pydantic models to allow runtime checks after creation (ca5e8d2)

Documentation

  • Added schema of BECDockArea and BECFigure (828067f)

v0.57.6 (2024-06-06)

Bug Fixes

  • bar: Docstrings extended (edb1775)

v0.57.5 (2024-06-06)

Bug Fixes

  • plot_base: .plot removed from plot_base.py, because there is no use case for it (82e2c89)

  • waveform: Added .plot method with the same signature as BECFigure.plot (8479caf)

Documentation

  • figure: Docs adjusted to be compatible with new signature (c037b87)

Refactoring

  • figure: Logic for .add_image and .image consolidated; logic for .add_plot and .plot consolidated (52bc322)

v0.57.4 (2024-06-06)

Bug Fixes

  • docks: Docks widget_list adn dockarea panels return values fixed (ffae5ee)

  • docks: Set_title do update dock internal _name now (15cbc21)

v0.57.3 (2024-06-06)

Bug Fixes

  • ring: Automatic updates are disabled uf user specify updates manually with .set_update; 'scan_progres' do not reset number of rings (e883dba)

  • ring: Enable_auto_updates(true) do not reset properties of already setup bars (a2abad3)

  • ring: Set_min_max accepts floats (d44b1cf)

  • ring: Set_update changed to Literals, no need to specify endpoint manually (c5b6499)

Documentation

v0.57.2 (2024-06-06)

Bug Fixes

  • Accept scalars or numpy arrays of 1 element (2a88e17)

  • Rpc_server_dock fixture now spawns the server process (cd9fc46)

  • test/e2e: Autoupdate e2e rewritten (e1af5ca)

  • test/e2e: Dockarea and dock e2e tests changed to check asserts against config_dict (5c6ba65)

  • test/e2e: Spiral_progress_bar e2e tests rewritten to use config_dict (7fb31fc)

Refactoring

  • Move _get_output and _start_plot_process at the module level (69f4371)

v0.57.1 (2024-06-06)

Bug Fixes

  • Tests references to add_widget_bec refactored (f51b25f)

  • dock: Add_widget and add_widget_bec consolidated (8ae323f)

Documentation

  • Docs refactored from add_widget_bec to add_widget (c3f4845)

v0.57.0 (2024-06-05)

Documentation

  • Extend user documentation for BEC Widgets (4160f3d)

Features

  • widgets/console: Becjupyterconsole added (8c03034)

v0.56.3 (2024-06-05)

Bug Fixes

  • Fixed support for auto updates (131f49d)

Continuous Integration

  • Increased verbosity for e2e tests (4af1abe)

v0.56.2 (2024-06-05)

Bug Fixes

  • bar: Ring saves current value in config (9648e3e)

  • dock: Dock saves configs of all children widgets (4be756a)

  • dock_area: Save/restore state is saved in config (46face0)

  • figure: Added correct types of configs to subplot widgets (6f3b1ea)

Documentation

  • Restructured docs layout (3c9181d)

v0.56.1 (2024-06-04)

Bug Fixes

  • spiral_progress_bar: Endpoint is always stored as a string in the RingConnection Config (d253991)

  • spiral_progress_bar/rings: Config min/max values added check for floats (9d615c9)

v0.56.0 (2024-05-29)

Bug Fixes

  • Compatibility adjustment to .ui loading and tests for PySide6 (07b99d9)

  • examples: Outdated examples removed (mca_plot.py, stream_plot.py, motor_example.py) (ddc9510)

Build System

  • Added pyside6 as dependency (db301b1)

Continuous Integration

  • Added tests for pyside6, pyqt6 and pyqt5, default test and e2e is python 3.11 and pyqt6 (855be35)

Documentation

  • examples: Example apps section deleted (ad208a5)

Features

  • utils/ui_loader: Universal ui loader for pyside/pyqt (0fea8d6)

v0.55.0 (2024-05-24)

Features

  • widgets/progressbar: Spiralprogressbar added with rpc interface (76bd0d3)

v0.54.0 (2024-05-24)

Build System

  • Added pyqt6 as sphinx build dependency (a47a8ec)

Features

  • figure: Changes to support direct plot functionality (fc4d0f3)

Refactoring

  • clean-up: 1st generation widgets are removed (edc25fb)

  • reconstruction: Repository structure is changed to separate assets needed for each widget (3455c60)

v0.53.3 (2024-05-16)

Bug Fixes

  • Removed apparently unnecessary sleep while waiting for an rpc response (7d64cac)

v0.53.2 (2024-05-15)

Bug Fixes

  • Adapt to bec_lib changes (no more submodules in __init__.py) (5d09a13)

  • Check device class without importing to speed up initial import time (9f8fbdd)

  • Speed up initial import times using lazy import (from bec_lib) (d1e6cd3)

Continuous Integration

  • Added echo to highlight the current branch (0490e80)

v0.53.1 (2024-05-09)

Bug Fixes

Continuous Integration

v0.53.0 (2024-05-09)

Bug Fixes

  • Fixed semver job and upgraded to v9 (32e1a9d)

Continuous Integration

  • Use formatter config of toml file (5cc816d)

Documentation

  • Update install instructions (57ee735)

Features

  • Moved to pyproject.toml; closes #162 (c86ce30)

Refactoring

v0.52.1 (2024-05-08)

Bug Fixes

  • docstrings: Docstrings formating fixed for sphinx to properly format readdocs (7f2f7cd)

v0.52.0 (2024-05-07)

Bug Fixes

  • widgets/dock: Becdockarea close overwrites the default pyqtgraph Container close + minor improvements (ceae979)

Continuous Integration

  • Fixed support for child pipelines (e65c7f3)

Features

  • utils/layout_manager: Added GridLayoutManager to extend functionalities of native QGridLayout (fcd6ef0)

  • widget/dock: Becdock and BECDock area for dockable windows (d8ff8af)

Refactoring

  • widget/plots: Widgetconfig changed to SubplotConfig (03fa1f2)

v0.51.0 (2024-05-07)

Build System

  • cli: Changed repo name to bec_widgets (799ea55)

  • setup: Fakeredis added to dev env (df32350)

  • setup: Pyqt6 version is set to 6.7 (0ab8aa3)

Continuous Integration

  • Added rule for parent-child pipelines (e085125)

Features

  • utils: Added plugin helper to find and load (5ece269)

v0.50.2 (2024-04-30)

Bug Fixes

  • 'disconnect_slot' has to be symmetric with 'connect_slot' regarding QtThreadSafeCallback (0dfcaa4)

v0.50.1 (2024-04-29)

Bug Fixes

  • cli: Becfigure takes the port to connect to redis from the current BECClient, supporting plugins (57cb136)

v0.50.0 (2024-04-29)

Bug Fixes

  • plots: Cleanup policy reviewed for children items (8f20a0b)

  • rpc/client_utils: Getoutput more transparent + error handling (6b6a6b2)

  • rpc_register: Thread lock for listign all connections (2ca3267)

  • widgets/figure: Access pattern changed for getting widgets by coordinates for rpc (13c018a)

Features

  • plots: Universal cleanup and remove also for children items (381d713)

  • rpc/rpc_register: Singleton rpc register for all rpc connections for session (a898e7e)

Testing

  • cli/rpc_register: E2e RPCRegister (4f261be)

  • cli/rpc_register: Rpc_register tests added (40eb75f)

v0.49.1 (2024-04-26)

Bug Fixes

  • widgets/editor: Qscintilla editor removed (ab85374)

Build System

  • pyqt6: Fixing PyQt6-Qt6 package to 6.6.3 (a222298)

v0.49.0 (2024-04-24)

Bug Fixes

  • rpc/client_utils: Close clean up policy for BECFigure (9602085)

Features

  • rpc/client_utils: Timeout for rpc response (6500a00)

v0.48.0 (2024-04-24)

Features

  • cli: Added auto updates plugin support (6238693)

v0.47.0 (2024-04-23)

Features

  • utils/thread_checker: Util class to check the thread leakage for closeEvent in qt (71cb80d)

Refactoring

  • utils/container_utils: Part of the logic regarding locating widgets moved from BECFigure to utility class (77ff796)

v0.46.7 (2024-04-21)

Bug Fixes

  • plot/image: Monitors are now validated with current bec session (67a99a1)

v0.46.6 (2024-04-19)

Bug Fixes

  • cli: Fixed support for devices as cli input (1111610)

Continuous Integration

  • Changed ophyd default branch to main (81484e8)

v0.46.5 (2024-04-19)

Bug Fixes

  • plots/waveform: Colormap is correctly passed from BECFigure (026c079)

  • widgets/figure: Individual cleanup disabled, making stuck rpc (ff52100)

Refactoring

  • examples/jupyter_console_window: Jupyter console debugging window moved to examples (b632ed1)

  • rpc/client_utils: Update script for grid_scan adds z axis device (2955b5e)

Testing

  • rpc/bec_figure: Test_rpc_plotting_shortcuts_init_configs extended by testing scatter z gradient for BECWaveform through RPC (a156803)

v0.46.4 (2024-04-16)

Bug Fixes

  • Renaming of bec_client to bec_ipython_client (4da625e)

  • plots/image: User can get data as np.ndarray from BECImageItem (c2c583f)

  • plots/motor_map: User can get data as dict from BECMotorMap (c12f2ce)

  • rpc/server: Server can accept client or dispatcher (ecdf0f1)

Continuous Integration

  • "master" renamed to "main" in semver and pages section (05e268d)

  • Added workflow .gitlab-ci.yml (42a9a0c)

  • Changed default BEC branch to main (bd3b1ba)

  • Ci_merge_request_target_branch_name changed to main (b6feb9a)

  • Fixed multi-project pipeline (22fb5a5)

  • Merge AdditionalTests with test stage (2e3f46e)

  • Pull images via gitlab dependency proxy (df5234a)

  • Set branch name for semver (4bcae0f)

  • tests: Unit tests ci path corrected (66c0649)

Refactoring

  • isort: Isort applied (5600624)

  • plots/image: All rpc widgets can access config_dict as property (be9847e)

  • plots/image: Images are accessed as property .images -> returns list[BECImage] (2f7317b)

Testing

  • Unit tests moved to separate folder; scope of autouse bec_dispatcher fixture reduced only for unit tests; ci adjusted (2446c40)

  • e2e/rpc: Rpc e2e tests extended (1bc18a2)

  • end-2-end: Rpc end-2-end tests (4d0df36)

v0.46.3 (2024-04-11)

Bug Fixes

  • Producer->connector (9def373)

  • cli/client_utils: Print_log is buffered; add output processing thread (285bf01)

  • plots/motor_map: Removed single callback flag for connecting device_readback motors (49327a8)

  • test_fake_redis: Testmessage fixed to pydantic BaseModel (0b86a00)

Refactoring

  • bec_dispatcher: New BEC dispatcher - rebased (90907e0)

Testing

  • utils/bec_dispatcher: Tests fixed (301bb91)

v0.46.2 (2024-04-10)

Bug Fixes

  • widget/plots: Added "get_config" to all children of BECConnector to USER_ACCESS (ee617b7)

Refactoring

  • utils/bec_dispatcher: New singleton definition (92cea90)

v0.46.1 (2024-04-10)

Bug Fixes

  • rpc/client: Correct name for RPC class BECWaveform (instead of BECWaveform1D) (cf29035)

v0.46.0 (2024-04-09)

Features

  • plot/waveform1d: Becwaveform1d can show z data of scatter coded to different detector like BECMonitor2DScatter; BECWaveform1D name changed to BECWaveform (3d399ba)

Refactoring

  • widget/monitor_scatter_2D: Deleted (fe101f9)

Testing

  • Fixed default value for scan id (6dc1000)

  • plot/figure: Test extended to check shortcuts for creating subplots (754d81e)

v0.45.0 (2024-03-26)

Documentation

  • Added api reference; closes #123 (88014d2)

Features

  • plots/bec_figure: Motor Map integrated to BECFigure (b8519e8)

  • plots/bec_motor_map: Becmotormap build on BECPlotBase (0f69c34)

Testing

  • Mock_client unified for all tests (ea4d743)

  • plot/motor_map: Tests extended (6e0e69b)

v0.44.5 (2024-03-25)

Bug Fixes

Refactoring

  • Isort import formatting (62f0b15)

  • Renamed scanID to scan_id (d846266)

v0.44.4 (2024-03-22)

Bug Fixes

  • cli/server: Removed BECFigure.start(), the QApplication event loop is started by server.py (f3a96de)

  • cli/server: Thread heartbeat replaced with QTimer (e6b0657)

v0.44.3 (2024-03-21)

Bug Fixes

  • cli: Added gui heartbeat (882cf55)

  • cli: Don't call user script if gui is not alive (a92aead)

v0.44.2 (2024-03-20)

Bug Fixes

  • utils/bec_dispatcher: Bec_dispatcher adjusted to the new BECClient; dropped support to inject bec_config.yaml, instead BECClient can be passed as arg (86416d5)

  • utils/bec_dispatcher: Try/except to start client, to avoid crash when redis is not running (9ccd4ea)

Continuous Integration

  • Now testing against master branches of bec_lib and ophyd_devices (1d5442a)

v0.44.1 (2024-03-19)

Bug Fixes

  • examples/motor_compilation: Motor_control_compilations.py do not have any hardcoded config anymore (14f901f)

v0.44.0 (2024-03-18)

Bug Fixes

  • cli: Fixed cleanup procedure (2d39c5e)

  • cli: Removed hard-coded signal (203ae09)

Features

  • cli: Added update script to BECFigure (9049e0d)

v0.43.2 (2024-03-18)

Bug Fixes

  • cli/server: Added QApplications to enter separate QT event loop ensuring that QT objects are not deleted (d0f9bf1)

v0.43.1 (2024-03-15)

Bug Fixes

  • plots/image: Same access pattern for image and image_item for setting up parameters, autorange of z scale disabled by default (b8d4e69)

  • widget/various: Corrected USER_ACCESS methods for children widgets to include inherited methods to RPC (4664661)

  • widgets/figure: Added widgets can be accessed as a list (fig.axes) or as a dictionary (fig.widgets) (fcf918c)

Refactoring

  • cli: Commented debug CLI messages (32747ba)

  • widget/figure: Changed add_plot and add_image to specify what should be content of the widget, instead of widget id (d99fd76)

v0.43.0 (2024-03-14)

Bug Fixes

  • cli: Find_widget_by_id for BECImageShow changed to be compatible with RPC logic (4ef6ae9)

  • cli: Fix cli connector.send to set_and_publish for gui_instruction_response (4076698)

  • plots/image: Access pattern for ImageItems in BECImageShow (3362fab)

  • plots/waveform1d: Curves_data access disabled (598479b)

Features

  • plots/image: Basic image visualisation, getting data are based on stream_connector (deprecated) (9ad0055)

  • plots/image: Change stream processor to QThread with connector.get_last; cleanup method for BECFigure to kill all threads if App is closed during acquisition (7ffedd9)

  • plots/image: Image processor can run in threaded or non-threaded version (4865b10)

Refactoring

  • plots/image: Image logic moved to BECImageItem, image updated from bec_dispatcher with register_stream fetching data from dispatcher (a21bfec)

  • plots/plot_base: Becplotbase inherits from pg.GraphicalLayout instead of pg.PlotItem, this will allow us to add multiple plots into each coordinate of BECFigure. (70c4e9b)

v0.42.1 (2024-03-10)

Bug Fixes

  • various: Repo cleanup, removed - [plot_app, one_plot, scan_plot, scan2d_plot, crosshair_example, qtplugins], tests adjusted (f3b3c2f)

v0.42.0 (2024-03-07)

Features

  • utils/bec_dispatcher: Becdispatcher can register redis stream (4c0a7bb)

v0.41.4 (2024-03-07)

Bug Fixes

  • utils/bec_dispatcher: Becdispatcher can accept new EndpointInfo dataclass. (c319dac)

Continuous Integration

v0.41.3 (2024-03-01)

Bug Fixes

  • cli/generate_cli: Added automatic black formatting; added black as a dependency (d89f596)

  • cli/generate_cli: Typing.get_overloads are only used if the python version is higher than 3.11 (f386563)

Testing

  • cli/generate_cli: Import from future (110506c)

  • cli/generate_cli: Test added (7e0058a)

v0.41.2 (2024-02-28)

Bug Fixes

  • utils/bec_dispatcher: Msg is unp[acked from dict before accessing .content (bb1f066)

v0.41.1 (2024-02-26)

Bug Fixes

  • bec_dispatcher: Adapt code to redis connector refactoring (8127fc2)

  • bec_dispatcher: Handle redis connection errors more gracefully (a2ed2eb)

v0.41.0 (2024-02-26)

Bug Fixes

  • After removing plot from BECFigure, the coordinates are correctly resigned (d678a85)

  • Removed DI references, fixed set when adding plot by fig (7c15d75)

  • cli: Fixed property access, rebased (f71dc5c)

  • cli: Fixed rpc construction of nested widgets (da640e8)

  • cli/client_utils: "rpc" pop from msg_results (ebb36f6)

  • cli/rpc: Rpc client can return any type of object + config dict of the widgets (fd711b4)

  • cli/rpc: Server access children widget.find_widget_by_id(gui_id) (57132a4)

  • plots/waveform1d: Pandas import clean up, export curves with none skipped (35cd4fd)

  • rpc: Added annotations to pass py3.9 tests (c6bdf0b)

  • rpc: Connection to on_rpc_update done through bec_dispatcher (1c2fb8b)

  • rpc_server: Fixed gui_id lookup (4630d78)

  • tests: Becdispatcher fixture putted back (644f103)

  • widget/figure: Add cleanup method to disconnect all slots before removing Waveform1D from layout (a28b9c8)

  • widgets/plots: Added placeholder for cleanup method to BECPlotBase (24c7737)

Features

  • Added @user_access from bec_lib.utils (b827e9e)

  • Becconnector -> mixin class for all BEC Widget to hook them to BEC client (91447a2)

  • Becfigure and BECPlotBase created (9ef331c)

  • Curve can be modified after adding to the plot (684592a)

  • Figure.py create widget factory (c781b1b)

  • Plot can be removed from BECFigure (60d150a)

  • Rpc decorator to add methods to USER_ACCESS (b676877)

  • Start method for BECFigure, jupyter console .ui added to git (1d26b23)

  • Waveform1d.py curves can be removed by identifier by order(int) or by curve_id(str) (f0ed243)

  • Waveform1d.py curves can be stylised; access scan history by index or scanID (cba3863)

  • Waveform1d.py draft (565e475)

  • cli: Added cli interface, rebased (a61bf36)

  • utils/entry_validator: Possibility to validate add_scan_curve with current BEC session (1db77b9)

  • widgets/figure: Clear_all method for BECFigure (0363fd5)

  • widgets/figure.py: Dark/light theme changer (08534a4)

  • widgets/waveform1d: Data can be exported from rendered curve (5fc8047)

  • widgets/Waveform1D: Waveform1d can be fully constructed by config (9a5c86e)

Refactoring

  • Becconnector changed config structure (4a1792c)

  • Becfigure, BECPlotBase changed back to pyqtgraph classes inheritance (7768e59)

  • plot/Waveform1D,plot/BECCurve: Beccurve inherits from BECConnector and can refer to parent_id (Waveform1D) and has its own gui_id (99dce07)

  • rpc/client: Changed path to client.py to relative one (402adc4)

  • widgets/BECCurve: Set kwargs for curve style while adding curve (5964778)

Testing

  • plots/waveform1d: Tests added (f06e652)

  • test_bec_figure: Tests for BECFigure added (f668eb8)

  • test_plot_base: Becplotbase tests added (826a5e9)

  • tests/client_mocks: Added general mock_client with container for fake devices for testing (4051902)

  • tests/test_bec_connector: Test_bec_connector.py added (8135f68)

v0.40.1 (2024-02-23)

Bug Fixes

  • utils/bec_dispatcher: _do_disconnect_slot will shutdown consumer of slots/signals which were already disconnected (feca7a3)

v0.40.0 (2024-02-16)

Features

  • utils.colors: Golden_angle_color utility can return colors as a list of QColor, RGB or HEC (5125909)

v0.39.0 (2024-02-12)

Build System

  • Added all .ui and .yaml files to pypi install; removed gauss_bpm from default config from monitor.py (968da6f)

Features

  • Active motors from motor_map.py can be changed by slot without changing the whole config (17f1458)

  • Added full app with all motor movement related widgets into motor_control_compilations.py (fa4ca93)

  • Comboboxes of motor selection are changed to orange if the motors are not connected yet (0b9927f)

  • Control panels compilations (8361736)

  • Motor_control.py MotorControl widgets - Absolute + Relative movement, MotorSelection, ErrorMessage popups (6fe08e6)

  • Motor_control.py MotorCoordinateTable added basic version to store coordinates and show them in motor_map.py (031cb09)

  • Motorcoordinatetable mode_switch added for "Individual" and "Start/Stop" modes (2f96e10)

Refactoring

  • Base class for motor_control.py widgets (8139e27)

  • Motor_control.py clean up (b52e22d)

  • Motor_control_compilations.py moved to example part of repository (8afc5f0)

  • Pylint ignore for tests (4b0542a)

Testing

  • Motor_control_compilations.py and motor_control.py tests added (bf04a4e)

v0.38.2 (2024-02-07)

Bug Fixes

Testing

  • Fixed import in test_validator_errors.py (5ebfd2a)

v0.38.1 (2024-01-26)

Bug Fixes

  • Monitor.py replots last scan after changing config with new signals; config_dialog.py checks if the new config is valid with BEC (ab275b8)

Documentation

  • 2d waveform scatter plot changed to 2D scatter plot (812ffaf)

  • Documentation for example apps and widgets updated (f7a4967)

Refactoring

v0.38.0 (2024-01-23)

Bug Fixes

  • Monitor_scatter_2d.py changed to new BECDispatcher definition (747e97e)

Features

  • Becmonitor2dscatter for plotting x/y/z signal as a mesh of scatter plot (75090b8)

Refactoring

  • Monitor_scatter_2d.py _init_database replaced with defaultdict (3c14327)

Testing

  • Fix test_bec_monitor_scatter2D.py database init test change to check defaultdict (8d0083c)

  • Test_bec_monitor_scatter2d.py added (c6fe9d2)

v0.37.1 (2024-01-23)

Bug Fixes

  • tests: Ensure BEC service is shutdown after bec dispatcher test (4664568)

  • tests: Ensure threads started during plot tests are properly stopped (3fb6644)

Refactoring

  • tests: Ensure BEC dispatcher singleton object is renewed at each test (d909673)

v0.37.0 (2024-01-17)

Features

  • Independent motor_map widget (1a429b3)

Refactoring

Testing

  • Test_motor_map.py added (1cd273c)

v0.36.2 (2024-01-17)

Bug Fixes

  • Bec_dispatcher.py can connect multiple topics to one callback slot (e51be04)

  • Bec_dispatcher.py can partially disconnect topics from slot (7607d7a)

v0.36.1 (2024-01-15)

Bug Fixes

  • Motor_example.py fix to the new .read() structure from bec_lib (f9c5c82)

Refactoring

  • Motor_example.py get coordinates by .readback.get() method (bf819bc)

  • Using motor.readback.read() to access motor coordinates (6f26e5c)

v0.36.0 (2024-01-12)

Features

  • Bec_dispatcher can link multiple endpoints topics for one qt slot (58721be)

v0.35.0 (2024-01-12)

Bug Fixes

  • Monitor.py change import of ConfigDialog from relative to absolute in order to make BECPlotter be able to open it (6061b31)

  • Monitor.py clear command from BECPlotter CLI clear now flush database and clear the plots (ebd4fcc)

  • Monitor.py crosshair enabled by default (97dcc5a)

  • Monitor.py fixed not updating config changes after receiving refresh from BECPlotter (00ef3ae)

  • Monitor.py fixed scan mode (a706da2)

  • Monitor_config_validator.py changed to check .describe() instead of signals (5ab82bc)

  • Monitor_config_validator.py valid color is Literal['black','white'] (86c5f25)

  • Motor_config_validation changed to new monitor config structure (d67bdd2)

Continuous Integration

  • Fix cobertura for gitlab/16 (9c7a189)

Features

  • Monitor.py access data directly from scan storage (26c07c3)

  • Monitor.py can access custom data send through redis (6e4775a)

Refactoring

  • Config_dialog.py refactored to accept new config formatting (3982c5d)

  • Modular_app.py configs changed to new format (404ca49)

  • Monitor.py clean up (1128ca5)

  • Monitor.py config hierarchy refactor for source (can be 'scan_segment','history', 'redis') (c995e0d)

  • Monitor.py data for scan segment are only accessed through queue.scan_storage (c3f2ad4)

  • Monitor.py on_scan_segment old logic separated from on_scan_segment function (463a60a)

  • Review response for MR !31 (eb529d2)

Testing

  • Test_bec_monitor.py fixed (457567e)

  • Test_validator_errors.py fixed (90d8069)

v0.34.1 (2023-12-12)

Bug Fixes

  • Formatter and tests fixed (186c42d)

Build System

Continuous Integration

Documentation

  • Gitlab templates for issues and merge requests from main bec repo (831eddc)

  • Readdocs updated (af995a7)

  • Readme.md updated (cba8131)

Refactoring

  • Replace deprecated imports from typing (9e852d1)

https://peps.python.org/pep-0585/#implementation

v0.34.0 (2023-12-08)

Bug Fixes

  • Monitor_config_validator.py - Signal validation changed from field_validator to model_validator to check first name and then entry (0868047)

  • Monitor_config_validator.py fix entry validation executed only if name validator is successful (af71e35)

Features

  • Monitor.py error message popup (a3b24f9)

Refactoring

  • Monitor.py pylint improvement (731fba5)

Testing

  • Validation errors tests (2a33415)

v0.33.0 (2023-12-07)

Bug Fixes

  • Added hooks to react to incoming config messages and instructions (1084bc0)

  • Fixed default config options (03bdf98)

Features

  • Added axis_width and axis_color as optional plot settings (504944f)

v0.32.2 (2023-12-06)

Bug Fixes

  • Changed exec_ to exec for all apps (080c258)

  • Yaml_dialog.py changed to use native solution of OS -> should prevent crashing on py3.11 (5adde23)

Testing

  • Additional tests for error handling for yaml_dialog.py (f5d1127)

  • Removed captured code for Permission tests (aad754f)

v0.32.1 (2023-12-06)

Bug Fixes

  • Widget_io print_widget_hierarchy fix comboboxes (d1f9979)

  • Widgetio combobox fixed for qt6 distributions (4f70097)

Refactoring

  • Improve pylint for WidgetIO (bcc47f3)

v0.32.0 (2023-11-30)

Bug Fixes

  • Added missing dependency jedi (d978740)

  • Editor.py compact signature on tooltip (f96cacc)

  • Editor.py removed automatic background behind edited text (d865e2f)

  • Editor.py switch to disable docstring (3cc05cd)

  • Terminal output as QThread (a0d172e)

  • Toolbar.py automatic initialisation works (8ad3059)

Build System

  • Added option to add PyQt6/PyQt5/PySide2/PySide6 as qt distribution with PyQt6 as default (b14d95a)

  • Added qtconsole to dependency (e5010c7)

  • Disabled support to PySide2/PySide6, due to no QScintilla support; added pyqtdarktheme (c174326)

Continuous Integration

  • Added libdbus (65cbd6e)

  • Added libegl1-mesa to the apt-get install command in tests (bb64088)

  • Added pylint to ci (745aa6e)

Features

  • Basic text editor + running terminal output (9487844)

  • Editor.py added splitter between editor and terminal (c70ddb3)

  • Editor.py basic signature calltip (045b1ba)

  • Editor.py jedi autocomplete hooked (fb555b2)

  • Jupyter rich console added as alternative to default QTextEdit terminal output (016b26f)

  • Toolbar.py proof-of-concept (286e62d)

Refactoring

  • Change from QMainWindow to QWidget (10dfe9f)

  • Changed dependency to CAPS (7d15397)

  • Editor.py migration to qtpy (b07bb3d)

  • Editor.py open/save file refactored to not use native window (d967faf)

  • Editor.py signature tooltip process moved to AutoCompleter; simpler logic for signature tooltip (d7a2c68)

  • Improve pylint score (a4d9713)

  • Migration to qtpy (b6f6bc5)

  • Toolbar.py migration to native qt QToolBar (ee3b616)

Testing

  • Test_editor.py tests added (b21c1db)

v0.31.0 (2023-11-13)

Documentation

  • Pydantic validation module docs (92a5325)

Features

  • Pydantic validation module for monitor.py (7fec0c7)

Refactoring

  • Becmonitor cleanup for validation in on_scan_segment; dropped support for multiple entries for single device (cd9cd9e)

  • Clean up (6b114c2)

  • Configs for BECMonitor are validated by pydantic outside the main widget (37278e3)

  • Fix bec_lib imports (5ec2b08)

  • Fix bec_lib imports in tests (cae4f8b)

  • Monitor.py update_config renamed to on_config_update; gui_id added (59bc404)

  • Monitor_config_validator.py device_manager renamed to devices (53494c7)

  • Monitor_config_validator.py name validation logic (84ef7e5)

Testing

  • Tests fixed; test_bec_monitor.py extended for FakeDevice class (05c8226)

v0.30.0 (2023-11-10)

Bug Fixes

  • Added imports to init.py in widget for ScanControl class (b85cc89)

  • Scan_control.py all kwargs are rendered (4b7592c)

  • Scan_control.py args_size_max fixed (da9025e)

  • Scan_control.py default spinBox limits increases (5c67026)

  • Scan_control.py kwargs and args are added to the correct layouts (b311069)

  • Scan_control.py scan can be executed from GUI (2e42ba1)

  • Scan_control.py supports minimum and maximum number of args (ee2f36f)

  • Scan_control.py wipe table and reinitialise devices when scan is changed (5ac3526)

  • Widget_io.py added handler for QCheckBox (18a7025)

Features

  • Scan_control.py a general widget which can generate GUI for scan input (088fa51)

  • Scan_control.py added option to limit scan selection from list of strings as init parameter (0fe06ad)

  • Widgetio support for QLabel (aa4c7c3)

Refactoring

  • Changed buttons name to be consistent with other projects (43777f5)

  • Changed widget_IO.py to widget_io.py for consistency; widget_io.py example excluded from coverage (975aadb)

  • Clean up (1f01034)

  • Scan_control.py clean up (27f6a89)

  • Scan_control.py extraction of args separated (63f23cf)

  • Scan_control.py generate_input_field refactored into smaller functions (26c6e1f)

  • Scan_control.py kwargs and args layouts changed to QGridLayouts (f5ff15f)

  • Scan_control.py kwargs are in grid layout, args in table widget (8bc88ca)

  • Scan_control.py refactor to use WidgetIO (3be9c97)

  • Widget_hierarchy.py changed into general purpose modul to extract values from widgets using handlers (9308f60)

  • Widget_hierarchy.py renamed to widgets_io.py (3c28cf0)

Testing

v0.29.0 (2023-10-31)

Bug Fixes

  • Config_dialog.py can load the current configuration of the plot (f94a29b)

  • Config_dialog.py config from default mode can be exported to dict (55b5ca7)

  • Config_dialog.py export to .yaml fixed (7e99920)

  • Config_dialog.py prevents to add one scan twice (12469c8)

  • Config_dialog.py scan_type structure implemented (e41d81c)

  • Config_dialog.py tabs for scans and plots are closable now (ec88564)

  • Device_monitor.py BECDeviceMonitor can be promoted in the QtDesigner and then setup in the modular app (afab283)

  • Device_monitor.py crosshairs can be attached again (644a97a)

  • Modular_app.py configs are linked to the actual version of the state of the device monitor (d78940d)

  • Test_bec_monitor.py config loaded fresh in the test function to avoid parameter leak (3866d7c)

  • Test_bec_monitor.py QApplication instance removed (77e1d09)

  • Test_bec_monitor.py setup_monitor help function changed to pytest.fixture (989cd51)

  • Test_config_dialog.py - QApplication removed (1cdd760)

  • Test_config_dialog.py - test_add_new_plot_and_modify qtbot action .click() changed -> function called directly (1333e6c)

  • Test_config_dialog.py disabled (4e710dd)

  • Test_config_dialog.py QApplication instance added (60e864b)

  • Wrong init.py in modular_app (d52aa15)

  • Yaml_dialog.py added return None if no file path is specified (ff1d918)

  • Yaml_dialog.py added support for .yml files (10539f0)

Documentation

  • Added sphinx base structure (9d36b96)

  • Config_dialog.py comments added to example cases (4a6e73f)

  • Device_monitor.py update docstrings (a785bca)

Features

  • Config_dialog.py interactive editor of plot settings (c9e5dd5)

  • Modular_app.py, device_monitor.py, config_dialog.py linked together, plot configuration can be done through GUI (bf2a09e)

  • Qt_utils custom class for class where one can delete the row with backspace or delete (a6616f5)

  • Widget_hierarchy.py tool to inspect hierarchy of the widget (cda8dae)

  • Yaml_dialog.py interactive QFileDialog window to load/save .yaml files to/from dict (2b29b6c)

Refactoring

  • Becdevicemonitor changed to BECMonitor (cb6fb9d)

  • Config_dialog.py add_new_plot_tab and add_new_scan_tab changed names (fd49f1b)

  • Config_dialog.py clean up (93db0c2)

  • Config_dialog.py hook_plot_tab_signals refactored (fbb7a91)

  • Config_dialog.py load dict without scan mode (7d5429a)

  • Config_dialog.py simpler add_new_scan and add_new_plot (8ffb7d8)

  • Dialogconfig implemented directly to the BECDeviceMonitor (f1d7abe)

  • Qt_utils/hierarchy function refactored to use widget handler allowing to add more widget support in the future (de23c28)

  • Test configs are saved as yaml and shared for similar tests (5ad19b4)

  • Test_bec_monitor.py and test_config_dialog.py cleaned up (3a4cbb1)

  • Test_bec_monitor.py widget name changed (a3a72b9)

  • Test_config_dialog.py and test_bec_monitor.py clean up (1fd0185)

  • Yaml_dialog.py save/load logic changed (42fe859)

Testing

  • Becdevicemonitor tests (e4336cc)

  • Test_config_dialog.py added (6a5e0ad)

  • Test_hierarchy.py added (f396f98)

  • Test_yaml_dialog.py tests for loading/saving dialog for .yaml export (850f023)

v0.28.1 (2023-10-19)

Bug Fixes

  • Stream_plot.py on_dap_update data dict opened correctly (28908dd)

Refactoring

  • Bec_dispatcher.py changed to Ivan's version (6d6b1e9)

  • Duplicate scripts of BasicPlot removed, BasicPlot renamed to StreamPlot (144e56c)

  • Placeholders for stream plot (f022153)

  • Stream_plot.py changed client initialization (17ea7ab)

  • Stream_plot.py color static methods removed (ad2b798)

Testing

  • Add bec_dispatcher tests (7152c5b)

  • Test_basic_plot.py deactivated due to non-existing method on_scan_segment (8f83115)

  • Test_stream_plot.py basic tests for stream_plot.py, test_basic_plot.py removed (2925a5f)

v0.28.0 (2023-10-13)

Bug Fixes

  • Scan_mode for BECDeviceMonitor fixed init_ui (59bba14)

Features

  • Becdevicemonitor modular class which can be used to replace placeholder in .ui file. (f3f55a7)

  • Placeholders initialised (75af040)

v0.27.2 (2023-10-12)

Bug Fixes

Add scanID key to scan_segment in tests

Refactoring

  • Emit content and metadata from messages in connect_slot (78b666f)

  • Remove all custom topic connection methods (f01078f)

  • Replace connect with connect_slot (7335aa9)

  • Switch to generic connect_slot method in plots (616de26)

v0.27.1 (2023-10-10)

Bug Fixes

  • Extreme.py advanced error handling with possibility to reload different config (d623cf9)

  • Extreme.py advanced error handling with possibility to reload different config (51c3a9e)

  • Extreme.py client and device manager initialisation (cf15163)

  • Extreme.py client and device manager initialisation (ae79faa)

  • Extreme.py default config file changed to the config_example.yaml (d356cf7)

  • Extreme.py default config file changed to the config_example.yaml (5814113)

  • Extreme.py error in configuration are displayed as messagebox (89a52a0)

  • Extreme.py error in configuration are displayed as messagebox (9750039)

  • Extreme.py improved error handling for scan types mode (ece1859)

  • Extreme.py improved error handling for scan types mode (fbd299c)

  • Extreme.py init_plot_background error handling (dafb6fa)

  • Extreme.py init_plot_background error handling (c525eba)

  • Extreme.py init_ui changed > to >= for setting number of columns (a0a89fe)

  • Extreme.py init_ui changed > to >= for setting number of columns (6c773c7)

  • Extreme.py retry action fixed in ErrorHandler (b76df1b)

  • Extreme.py retry action fixed in ErrorHandler (5162270)

  • Extreme.py ui is initialised for the first scan of config in scan mode (82bebe6)

  • Extreme.py ui is initialised for the first scan of config in scan mode (fc60984)

  • Extreme.py validation function to check config key component structure (5a7ac86)

  • Extreme.py validation function to check config key component structure (824ce82)

  • Formatter fixed (153c5f4)

Refactoring

  • Added init.py to all example folders (4772c24)

  • Added init.py to all example folders (f74a6a0)

  • Extreme.py error messages for config file moved to ErrorHandler class (8050bdf)

  • Extreme.py error messages for config file moved to ErrorHandler class (d2c12a9)

  • Extreme.py ErrorHandler fixed, new configs are correctly loaded (aed65b4)

  • Extreme.py ErrorHandler fixed, new configs are correctly loaded (5637c93)

  • Fixed formatting for mca plot (977ce3a)

  • Test_extreme.py corrected typos (9e7224e)

  • Test_extreme.py corrected typos (eb1f1d4)

Testing

  • Added initial tests for extreme.py (80190cc)

  • Added initial tests for extreme.py (779f34f)

  • Added test_on_image_update for eiger_plot.py (ad1d69f)

  • Added test_on_image_update for eiger_plot.py (70684d1)

  • Added test_start_zmq_consumer for eiger_plot.py (7485aa9)

  • Added test_start_zmq_consumer for eiger_plot.py (0a0d51d)

  • Added test_zmq_consumer for eiger_plot.py (abd3ebe)

  • Added test_zmq_consumer for eiger_plot.py (c827a25)

  • Test_eiger_plot.py added qtbot.waitExposed(widget) (8b3a0ba)

  • Test_eiger_plot.py added qtbot.waitExposed(widget) (6322c47)

  • Test_eiger_plot.py optimised imports (5e9deae)

  • Test_eiger_plot.py optimised imports (08d9569)

  • Test_extreme.py error handling tested (fc31960)

  • Test_extreme.py error handling tested (90f22c2)

  • Test_extreme.py ErrorHandler tested separately (835bda0)

  • Test_extreme.py ErrorHandler tested separately (ac2a41d)

  • Test_extreme.py init_ui more edge cases (7b3a873)

  • Test_extreme.py init_ui more edge cases (36942b3)

  • Test_extreme.py MessageBox buttons Cancel and Retry tested (2faeb63)

  • Test_extreme.py MessageBox buttons Cancel and Retry tested (6c3dfdd)

  • Test_extreme.py on_scan_segment tested with all entries correctly defined (126451a)

  • Test_extreme.py on_scan_segment tested with all entries correctly defined (0ec65a0)

  • Test_extreme.py test_init_config fixed for scan_config (69aaea2)

  • Test_extreme.py test_init_config fixed for scan_config (0338462)

  • Test_extreme.py test_init_config new config tested (f8d30c9)

  • Test_extreme.py test_init_config new config tested (daf4ee1)

v0.27.0 (2023-09-25)

Bug Fixes

  • Epics removed from requirements (44cc881)

  • Extreme.py formatting fixed (63f52fc)

  • Line_plot.py ROI interactions fixed (e4f23f5)

  • Motor_example.py - new more robust logic for getting coordinates for table go buttons (08f508f)

  • Motor_example.py duplicate table fixed (401fec8)

  • Motor_example.py export .csv logic fixed (85841cd)

  • Motor_example.py load .csv logic fixed (b78152b)

  • Motor_example.py manual changing coordinates in start/stop works again (b13509e)

  • Motor_example.py new independent mapping relying on the table (673ed32)

  • Motor_example.py precision in duplicate table fixed (05f48de)

  • Motor_example.py replot points logic simplified (a15860a)

  • Motor_example.py user is blocked to duplicate last entry in start/end mode if end coordinate was not defined (418480f)

  • Online changes e21543 (b41d63e)

Features

  • Motor_example.py in start/end mode new button allowing user to go to end position (65b045e)

Performance Improvements

  • Motor_example.py replot logic optimizes (a4fb6bd)

Refactoring

  • Motor_example.py - function to connect buttons in the table (6124eab)

  • Motor_example.py removed old table related functions (ed3f656)

v0.26.7 (2023-09-19)

Bug Fixes

  • Eiger_plot_hist.py removed (abe35bf)

v0.26.6 (2023-09-19)

Bug Fixes

  • Extreme.py fixed logic of loading new config.yaml during app operation (4287ac8)

  • Extreme.py saved to .yaml works correctly for different scans configurations (cb144c7)

Documentation

  • Extreme.py updated documentation (7ff72b4)

Refactoring

  • Extreme.py changed initialisation of config (a694023)

  • Extreme.py plot init moved to config_init (5f3d55b)

v0.26.5 (2023-09-13)

Bug Fixes

  • Motor_example.py help extended (a5c6ffa)

Refactoring

v0.26.4 (2023-09-12)

Bug Fixes

v0.26.3 (2023-09-12)

v0.26.2 (2023-09-12)

Bug Fixes

  • Import with start/stop mode works again (cacc076)

  • Import works for both modes (b867f25)

v0.26.1 (2023-09-12)

v0.26.0 (2023-09-12)

Bug Fixes

  • Removed scipy from eiger_plot.py (0e634ee)

Features

  • Plot different signals and plot configurations based on different scans (57e6990)

Refactoring

v0.25.1 (2023-09-12)

Bug Fixes

  • Mode lock in config to disable changing the mode for users (10ccf0c)

  • Specific config for csaxs (8ff983f)

v0.25.0 (2023-09-12)

Bug Fixes

  • Extra columns works again (2123361)

  • Resize table is user controlled (63e3896)

Features

  • Combobox to switch between entries mode (f2fde2c)

Refactoring

  • Align_table_center as a static method (702e758)

  • Changed order of columns (14a0c92)

v0.24.2 (2023-09-12)

Bug Fixes

v0.24.1 (2023-09-08)

v0.24.0 (2023-09-08)

Bug Fixes

  • Typo fixed in mca_plot.py (3b12f1b)

Features

  • Histogramlut for mca_plot (ae04072)

v0.23.0 (2023-09-08)

Features

  • Added key bindings and help dialog (ade893d)

v0.22.0 (2023-09-08)

v0.21.2 (2023-09-08)

Bug Fixes

  • Moved mask as a last step of image processing (87d5467)

Features

v0.21.1 (2023-09-08)

Bug Fixes

  • Update_signal typo fixed (43f03b5)

v0.21.0 (2023-09-08)

v0.20.0 (2023-09-08)

Bug Fixes

  • Added missing .ui file to git (ae8fc94)

  • Path to mask fixed (ef42921)

Features

  • Added functionality to load mask (33d1193)

  • Added rotate and transpose logic (acd7a3b)

v0.19.2 (2023-09-08)

v0.19.1 (2023-09-08)

Bug Fixes

v0.19.0 (2023-09-08)

Bug Fixes

  • Rotation always counter-clockwise (00385ab)

v0.18.1 (2023-09-08)

Bug Fixes

Features

  • Eiger_plot.py in example folder with new GUI (5cbedec)

  • Rotation of the image to the left/right by 90, 180, 270 degree (327f6b3)

  • Simulation stream with Gaussian peak in 1st quadrant (4fa8d46)

v0.18.0 (2023-09-08)

v0.17.1 (2023-09-08)

Bug Fixes

  • Start_device_consumer changed from EP device_status to scan_status (46a3981)

v0.17.0 (2023-09-07)

Features

  • Console arguments added for Redis port, device, and sub_device tag (fb52b2a)

  • Device_consumer is getting scanID and initialise stream_consumer (9271b91)

  • Eigerplot added (70d74c7)

  • Plot flips every second row (c368871)

  • Simulation and simple 2D plot for mca card stream (bfef713)

Refactoring

  • Functionalities separated to different methods (b7136e7)

  • Project cleaned up (7d996ec)

v0.16.4 (2023-09-06)

Bug Fixes

  • Self.limit_map_data fixed to be initialised only with integers from limits (b62509a)

v0.16.3 (2023-09-06)

Bug Fixes

  • Limit spinBoxes morphed to doubleSpinBoxes (a1264fe)

Documentation

  • Pyqtgraph controls in help (2397af1)

Refactoring

v0.16.2 (2023-09-06)

Bug Fixes

  • X and y motor can be linked again (f45512e)

Refactoring

v0.16.1 (2023-09-06)

Bug Fixes

  • Default values fixed from .yaml (8a6e2da)

v0.16.0 (2023-09-06)

Bug Fixes

  • Content always aligned to centre (74884a3)

  • Help extended (9fba033)

  • Table loads number of columns correctly (bf12963)

Features

  • Added help button (2087d19)

  • Additional columns can be added through .yaml (fa76acb)

  • Additional extra rows takes values from previous row (1235294)

  • Table can be exported to csv (772f18f)

  • Table can be loaded from .csv (15d995f)

Refactoring

  • Change order of columns (3132b4f)

v0.15.0 (2023-09-06)

Bug Fixes

  • Added float validator to the table (be1bd81)

  • Coordinates markers are updated on the map, if X, Y in table manually is changed (0aa667b)

  • Partial fix to table checkBox (75f5c8f)

  • Table bug, when deleted multiple rows (9d83a45)

  • Table bug, when user deleted row and wanted to go to the previous position (63e6d61)

  • Table checkbox fixed (7e6244c)

Features

  • Step for x and y can be linked or separated (16ab746)

  • User can choose if to save coordinates when moving to absolute coordinates (6324199)

Refactoring

  • Change_step_size generalised to one function (aede198)

  • Code cleaned up (1241fc7)

  • Doublevalidationdelegate moved to qt_utils (ca099ec)

  • Init_ui separated into multiple sections for each ui functionality (b9920f3)

  • Sync_step_sizes generalised to one function (9beaa8f)

v0.14.2 (2023-09-05)

Bug Fixes

  • Bec_config initialisation by command line argument (b7a1b8b)

v0.14.1 (2023-09-05)

v0.14.0 (2023-09-05)

Bug Fixes

  • Checkbox visibility toggle is working. (a178c43)

  • Gui default tab changed to coordinates table (3c74fa5)

  • Highlight disapear with new motor (3fb8651)

  • Motor position points can be switched on/off if points were deleted (5b30dfd)

  • New points do not make invisible points visible again (fb10551)

  • Saved coordinates can be removed from table and from the map again (c32e95a)

Features

  • Enable gui button, in the case that motor movement is not finished (84155d2)

  • Saved coordinates are shown on the map (0ca665a)

v0.13.0 (2023-09-05)

Bug Fixes

  • Precision updated correctly (172ccc6)

  • Spinbox limits in ui file (8de08cf)

Features

  • Crosshair highlight at motor position (9228e5a)

  • Go, set, save current coordinates and keyboard shortcuts (5d6a328)

  • Increase step size double with key bindings (e9ef1e3)

v0.12.0 (2023-09-04)

Bug Fixes

  • Error message if motor do not have limits attribute (bf93b02)

Documentation

  • Added documentation to all classes and methods (4afaa1b)

Features

  • Config from .yaml file (1a67758)

  • Removal of motor configurations from user (34212d4)

v0.11.0 (2023-09-04)

Bug Fixes

  • Colorbutton change now symbols as well (6d2e1c9)

  • User selected colors are preserved with the new scan (8e7885f)

Features

  • Colorbutton next to each curve in the table to be able to set up colors (2c6719c)

v0.10.0 (2023-09-01)

Bug Fixes

  • Add max number of columns according to the number of plots (fbd71c1)

  • Bec_dispatcher.py can take multiple workers as a list (7bcf88d)

  • Check if num_columns is not higher that actual number of plots (aac6e17)

  • Columns span generalised for any number of columns (2d851b6)

  • Config.yaml can be passed as a console argument to extreme.py (b8aa373)

  • More specific error messages (583e643)

Documentation

  • Fixed documentation (2f7c1b9)

  • Updated documentation and TODOs (0ebe35a)

Features

  • Error messages if name or entry is wrong (415c4ee)

  • Load and export configuration into .yaml from GUI (e527353)

  • Multi window interface created for extreme BL (69c38d6)

  • Number of columns can be dynamically changed (65bfccc)

Refactoring

  • Changed the .yaml structure and the logic of the whole app how to access (96a88d2)

  • Moved colormap related static methods to qt_utils colors.py (1a06dd7)

v0.9.0 (2023-08-29)

Features

  • Better color coding of curves (0eff18f)

  • Migrate to .yaml config file instead of argparse (a9f1688)

Refactoring

  • X_value and y_values arguments separately (abd88f7)

v0.8.1 (2023-08-29)

Bug Fixes

  • Added missing local .ui file (f0589b7)

v0.8.0 (2023-08-29)

Bug Fixes

  • Crosshair snaps correctly to x dataset (2ed5d72)

  • User can disable dap_worker and just choose signals to plot (cab5354)

Features

  • Crosshair snapped to x, y data automatically, clicked coordinates glows (49ba6fe)

  • Crosshair snaps to data, but it is activated with button due to debug (223f102)

  • Dap fit plotted as curve, data as scatter (118f6af)

  • Fit table hardcode to "gaussian_fit_worker_3" (3af57ab)

  • Oneplot can receive one motor and one monitor signal (ff545bf)

  • Oneplot initialized as an example app for plotting motor vs monitor signals + dispatcher loop over msg (98c0c64)

  • User can specify tuple of (x,y) devices which wants to plot (3344f1b)

Refactoring

v0.7.0 (2023-08-28)

Bug Fixes

  • Init_motor_map receive motor position from motor_thread (95ead71)

  • Line_plot.py default changed back to "gauss_bpm" (64708bc)

  • Motor movement absolute fixed - movement by thread (11aa15f)

  • Motor selection is disabled while motor is moving (c7e35d7)

Features

  • Ability to choose how many points should be dimmed before reaching the threshold + total number of point which should be stored. (9eae697)

  • Controls are disabled while motor is moving and enabled when motor movement is finished (ed84293)

  • Delete coordinate table row by DELETE or BACKSPACE key (5dd0af6)

  • Going to absolute coordinates saves coordinate in the table for later use with tag (8be98c9)

  • Keyboard shortcut to go to coordinates (3c0e595)

  • Labels of current motors are shown in motors limits (413e435)

  • Map of motor position (e6952a6)

  • Motor coordinates are now scatter instead of image (3f6d5c6)

  • Motor limits can be changed by spinBoxes (2d1665c)

  • Motor move to absolute (X,Y) coordinates (cbe27e4)

  • Motor selection (cab32be)

  • Motor_example.py created, motor samx and samy can be moved by buttons (947ba9f)

  • New GUI (0226188)

  • Setting map according to motor limits (512e698)

  • Speed and frequency can be updated from GUI (f391a2f)

  • Speed and frequency is retrieved from devices (ce98164)

  • Stop movement function, one callback function for 2 motors, move_finished is emitted in move_motor function not in callback (187c748)

  • Switch for keyboard shortcuts for motor movement (cac4562)

  • Table with coordinates getting initial coordinates of motor (92388c3)

  • Total number of points, scatter size and number of point to dim after last position can be changed from GUI (e0b52fc)

Refactoring

  • Folder organization changed (a2f7aa5)

  • Getting motor limits and coordinates moved to MotorControl(QThread) (349c06b)

  • Introduced MotorActions enum to replace hardcoded strings + project cleanup (7575c91)

  • Migrate to use just np.array for tracking position, only latest N points are being dimmed. (3e408b3)

  • Motor movement as a QThread (af2fcff)

v0.6.3 (2023-08-17)

Bug Fixes

  • Crosshair handles dynamic changes of number of curves in 1D plot (242737b)

Documentation

  • Crosshair class documentation (8a60cad)

Testing

  • Crosshair mouse_moved signals for 1D and 2D (2fa1755)

v0.6.2 (2023-08-17)

Bug Fixes

  • Correct coordinates for cursor table (ce54daf)

v0.6.1 (2023-08-14)

Bug Fixes

  • Crosshair snaps to correct coordinates also with logx and logy (167a891)

v0.6.0 (2023-08-11)

Features

  • New GUI for line_plot.py (b57b3bb)

Refactoring

  • Rename line_plot to basic_plot (23c206d)

  • Renamed line_plot.ui to basic_plot.ui (3768015)

v0.5.0 (2023-08-11)

Bug Fixes

  • Dispatcher argparse and scan_plot tests (67f619e)

  • Gui event removing bugs (a9dd191)

Features

  • Add generic connect function for slots (6a3df34)

  • Add possibility to provide service config (8c9a9c9)

Refactoring

  • Register scan_segment callback directly (dfce55b)
  • this allows to skip client.start() setup

v0.4.0 (2023-08-11)

Bug Fixes

  • Fix examples when run directly as a script (cd11ee5)

  • Fixed logic in data subscription (c2d469b)

  • Module paths (e7f644c)

  • Plotting latest 1d curves (378be81)

  • Q selection for gui_event signal (0bf452a)

  • Scan_plot to accept metadata from dap signal (7bec0b5)

  • Testing the data structure of plotting (4fb0a3b)

Features

  • 2d plot updating (d32088b)

  • Add BECScanPlot2D (67905e8)

  • Add disconnect_dap_slot (1325704)

  • Add display_ui_file.py (91d8ffa)

  • Added Legend to plot (0feca4b)

  • Added qt_utils package with general Crosshair function (5353fed)

  • Changed from PlotItem to GraphicsLayoutWidget, added LabelItem (075cc79)

  • Cursor coordinate as a QTable (a999f76)

  • Cursor universal for 1D and 2D (f75554b)

  • Cursor universal signals (20e9516)

  • Emit the full bec message to slots (1bb3020)

  • some widgets will require metadata for their operation
  • Inherit from GraphicsView for consistency with 2D plot (d8c101c)

  • Metadata available on_dap_update (18b5d46)

  • Plotting from streamer (bb806c1)

Refactoring

  • Changed from bec client to dispatcher (14e92e8)

  • Made client a module import (dc5fd99)

  • Move plugins into a separate folder (b16406a)

  • Use BECClient for cb on scan_segment (ff534ad)

  • Widgets setup their own connections (87163fd)

v0.3.0 (2023-07-19)

Bug Fixes

  • Add warning for non-existing signalz (48075e4)

  • Documentation and bugfix for mouse_moved (a460f3c)

Build System

  • Fixed setup.cfg metadata (65b94ec)

Continuous Integration

  • Added security tests (81b6355)

  • Fixed python-semantic-release version to 7.* (cc69cf9)

  • Fixed stage name (004faec)

Documentation

  • Add notes about qt designer install via conda-forge (d8038a8)

  • Added license (db2d33e)

Features

  • Add auto-computed color_list from colormaps (3e1708b)

  • Add functionality for plotting multiple signals (10e2906)

  • Added ctrl_c from grum (8fee13a)

  • Added lineplot widget (989a3f0)

Refactoring

  • Added pylintrc file; cleanup (5e5c0ed)

Testing

  • Add test for line_plot (d37fbf5)

  • Fixed client mock (9883caa)

  • Removed deprecated waitforwindowshown method of qtbot (b790dd2)

v0.2.1 (2023-07-13)

Bug Fixes

  • Fixed bec_lib dependency (86f4def)

  • Fixed setup config (wrong name) (947db1e)

Build System

  • Added black as dev dependency (b5f7b4f)

Refactoring

  • Added example usage within main statement (4ee18ac)

Testing

  • Added tests for scan plot (f10de38)

v0.2.0 (2023-07-13)

Features

  • Move ivan's qtwidgets to bec-widgets (34e5ed2)

Refactoring

v0.1.0 (2023-07-11)

Build System

Continuous Integration

Features