Repository navigation
Slint Node Editor 2.0.0
Node groups, undraggable nodes, themeable link colours and a corrected automatic
layout. This is a major release because the generated LinkData gained fields
and two Rust helpers changed; most applications migrate with a
..Default::default().
Highlights
- Node groups: backing sheets that drag, collapse and refit around their
members. The live drag preview and the drag commit share one movement rule.
See thegroupsexample. - Undraggable nodes: with
BaseNode.draggableoff, a user drag moves a node
only with its group; a drag starting on it draws a marquee instead. - Link accents and dimming: colour links from an application palette that
follows theme changes, and fade the links outside a focus. - Automatic layout returns top-left corners, as documented, and can line a
rank's nodes up on their leading edge. - A node stays hovered over its own fields, labels and pins, and
viewport-resizedreports changes to the editor's size. - Fixes for marquees started on nodes and sheets in an editor offset within its
window, and for interaction cancellation across the@nodeeditormodule
boundary.
Thanks to Olivier de Gaalon for the layout corners, rank alignment, link accents
and dimming, node hover, undraggable nodes and the marquee fixes.
Requirements and setup
Requires Slint 1.18.0 or newer and Rust 1.92 or newer.
[dependencies]
slint-node-editor = "2.0.0"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 1.x
LinkDataliterals that name every field: addaccent: 0, dimmed: false, or
end the literal in..Default::default().LinkData::newis unchanged.GraphLogic::find_node_by_idaccepts any model: drop explicit generic
arguments such asfind_node_by_id::<NodeData, _>.sugiyama_layoutpositions are top-left corners: remove any half-size
correction applied to them.
From 2.0, a generated struct may gain a field whose default keeps its behaviour
in a minor release; build them with their constructors or
..Default::default(). See the
changelog
for every change and the
compatibility rules.
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.
Content a node draws outside its rectangle, such as the outer half of a pin
centred on its edge, does not hover the node. See
supported configurations
for platform coverage.