Skip to content

Editor enhancements#110

Open
Maik13579 wants to merge 14 commits intouleroboticsgroup:mainfrom
Maik13579:editor_enhancements
Open

Editor enhancements#110
Maik13579 wants to merge 14 commits intouleroboticsgroup:mainfrom
Maik13579:editor_enhancements

Conversation

@Maik13579
Copy link
Copy Markdown
Contributor

This PR adds following changes to the yasmin_editor:

  • Added a real menu bar with File, Add, Edit, View, and Help menus.
  • Added Save As.
  • Added Open Recent, including a persistent recent-file list and a Clear Recent Files action.
  • Added unsaved-change protection: the window title shows when the document is modified, and the editor now asks whether to save before creating a new state machine, opening another one, or closing the window.
  • Added undo/redo for editor changes.
  • The canvas interaction changed from mainly hand-drag navigation to rubber-band multi-selection; panning is now done with the middle mouse button.
  • Multi-selection now works across states, final outcomes, transitions, and text blocks, so whole subgraphs can be handled together.
  • Added a right-side shelf panel that can be shown or hidden and used as temporary storage for selected items.
  • Added Copy Selection (Ctrl+C): a selected group can be duplicated and then placed manually on the canvas.
  • Added drag-and-drop storage/restoration between the main canvas and the shelf, so selections can be moved out of the main graph and restored later.
  • Added Extract (Ctrl+E): selected states can be turned into a new nested state machine container.
  • Final outcomes can now be reused as multiple visible endpoints for the same logical outcome name instead of being limited to a single visible node.
  • These repeated final-outcome views are preserved in XML, including which visible outcome a transition points to.
  • Editing a final outcome now supports renaming it as well as changing its description.
  • Placement of newly added items is smarter and tries to use a nearby free position instead of stacking items on top of each other.
  • Multiline text content is saved and loaded more reliably.
  • Name-conflict handling is stricter: child-state names and final-outcome names are checked against each other more consistently when adding or renaming items.

I started adding some tests, but it's far from being fully covered.

@Maik13579 Maik13579 marked this pull request as ready for review April 14, 2026 16:40
@Maik13579
Copy link
Copy Markdown
Contributor Author

I also added GUI tests. The Jazzy CI error is unrelated to yasmin_editor, the failing tests are in yasmin_ros (test_action_client_state / test_action_client_state_cpp), so this does not seem to be caused by the editor changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant