Repository navigation
Add Multi-Drive Control to ConfigureGUI - #213
Merged
Merged
Conversation
… and cleanup _define_layout
…control_run_name_layout()
…rol_row1_button_layout()
… group list at a regular interval)
…on group is terminated or not connected
…pdate_display_timer.timeout
…ck away from RunWidget
…ack back to RunWidget
…into the scroll_area widget
# Conflicts: # bapsf_motion/gui/configure/configure_.py
rocco8773
enabled auto-merge (squash)
September 10, 2026 21:39
rocco8773
disabled auto-merge
September 10, 2026 21:39
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds to the
ConfigureGUIthe ability to control / move multiply motion groups at a time.The
ConfigureGUIhas a stack widget region that switches between configuration / control modes. So far, this stack only had two switchable widgets: (1)RunWidgetwhich is the default widget that show up when first launched and has a summary of the whole configuration and (2)MGWidgetwhich is the configuration widget for building / configuration aMotionGroup. This PR adds a third widgetMultiControlto this stack that is launch-able fromRunWidgetand will allow the user to control all existing motion group.RunWidgetnow has a "Control All" below the motion group list box that will launch theMultiControlwidget.The
MultiControlwidget will allow the user to control every fully configured motion group.MultiControlwill NOT allow the user to edit the motion group configuration. To edit a motion group configuration one has to return to theRunWidgetand select "Configure`.[40, 0] cm.A user can still view a motion group configuration by clicking the details button. In a future PR the "Configure" button will be enabled to allow the user to switch directly to a
MGWidgetinstance for the associated motion group.RunWidgetmg_control_btnbutton to the interface.mg_control_btnis placed below the normal controls that are under the motion group list box.MultiControlis not done inRunWidgetbut is done byConfigureGUIConfigureGUI@Slot_switch_stackto accept a string Literal ("run","configure", and"control") so switching betweenRunWidget,MGWidget, andMultiControlcan be specifically request. If no argument is given, then it"run"(akaRunWidget) will be assumed as the target widget._spawn_control_widgetfor instantiatingMultiControl.@Slot_motion_group_multi_controland connected it toRunWidget.mg_control_btn.clickedto control instantiation ofMultiControland stack switch toMultiControl._connect_signals_control_widget(used by_spawn_control_widget) to better centralized signal connection ofMultiControl.closeEventto explicitly closeMultiControl(if instantiated).bapsf_motion.gui.configure.multi_controlMultiControlwidget.MultiControlthe following "helper" widgets are defined:MGDetailsOverlay: This is the overlay that displays the TOML configuration for the requested motion group.MGControlAxis: This is the widget that defines the individual axis controls for a given axis of a given motion group. This is leveraged byMGControl.MGControl: This the the widget that defines the whole control interface for a given motion group.Items created but should be moved to
bapsf_qtQVerticalLabeltobapsf_motion.gui.widgets. This will generate a 90deg rotatedQLabel