Rich Tree

Binds hierarchical data through RichTreeData adapters instead of hand-written TreeItem trees.

Map get_id, get_label, and get_children, then optionally add lazy fetch, virtualization, inline edit, and reorder through TreeBehavior and shared TreeExpansion / TreeSelection APIs. Use composed Tree when you need full slot control over every row.

  • File explorers, org charts, or category trees backed by structured data
  • Lazy-loaded subtrees that fetch children on first expand
  • Inline editing and drag reorder on data-bound items
  • Build RichTreeData with get_id, get_label, and get_children adapters.
  • Share expansion/selection state via TreeExpansion and TreeSelection signals.
  • Use TreeBehavior::with_on_label_change to persist label edits.
Default data-driven tree

Basic adapter mapping id, label, and nested children.

Documents
readme.md
Controlled selection

Multi-select with on_select logging selected ids.

Alpha
Beta
Gamma
Controlled expansion

Pre-expanded branch via open_items.

Root
Child
Disabled items

is_disabled adapter marks rows non-interactive.

Enabled
Disabled
Inline editing

with_editable enables double-click/Enter label edit.

Rename me
Lazy load children

Empty branch fetches children when first expanded.

Drag reorder

Reorderable rows mutate the in-memory tree order.

One
Two
Virtualized subtree

Large flat lists window visible rows when with_virtualize(true).

Item 0
Item 1
Item 2
Item 3
Item 4
Item 5
Item 6
Item 7
Item 8
Item 9
Item 10
Item 11
Item 12
Item 13
Item 14
Item 15
Item 16
Item 17
Item 18
Item 19
Item 20
Item 21
Item 22