Repository navigation
Slint Node Editor 1.0.0
Slint Node Editor 1.0.0
The first stable release of Slint Node Editor, a Rust and Slint component library
for building visual graph editors with custom nodes and interactive links.
Highlights
- Node dragging, multi-selection, box selection, pan, zoom, grid, and minimap.
- Custom Slint nodes with embedded controls and application-defined connection
rules, link styling, and routing. - Optional automatic graph layout through the
layoutfeature. - Examples covering animated links, pin compatibility, and zoom-dependent detail.
- Geometry updates after programmatic moves and drag commits, deterministic pin
picking and layout, and tested downstream integration. - Keyboard focus follows presses on editor surfaces while preserving embedded
text input and application-directed focus changes. Thanks to Olivier de Gaalon
for the focus fix.
The application owns its graph models, selection, and editing policies. Rust
helpers handle common geometry, drag, and selection wiring.
Requirements and setup
Requires Slint 1.18.0 or newer and Rust 1.92 or newer.
[dependencies]
slint-node-editor = "1.0.0"Applications also choose their Slint backend and renderer and enable
experimental-module-builds on slint-build to import @nodeeditor.
See the integration guide
for the full manifest and a tested application, and the
component reference
for the Slint API and Rust helpers.
Migration from earlier git snapshots
- Replace
Link.path-commandswithLink.geometry: LinkPath; custom routes must
provide a bounding box as well as path commands. - Pass a
LinkPathconstructor tocompute_link_path_callback. - Use
NodeEditorComputationsfor computations andNodeEditorEventsfor node
double-clicks. Use the current setup macros and generated global exports. - Project selection and final drag positions into the host model synchronously.
- Windows using
wire_node_editor!must expose
public function focus-editor() { editor.focus(); }. Manual integrations must
connectNodeEditorInternalCallbacks.take-editor-focussynchronously.
See the changelog
for details. Breaking public API changes after 1.0 require a new major version.
Known limitations
One editor per window is supported. Keyboard-only graph editing and structural
accessibility are incomplete. Zoom-dependent detail is application code;
automatic virtualization and large-graph frame-rate guarantees are not provided.
See supported configurations
for platform coverage.