LVRS Document Viewer
components/navigation/HierarchyToolbar.svx
Path: components/navigation/HierarchyToolbar.svx
HierarchyToolbar
Location: qml/components/navigation/HierarchyToolbar.qml
HierarchyToolbar is the top toolbar for hierarchy panels, rendered as an IconButton array.
Purpose
- Render toolbar buttons from an external array model.
- Keep active slot selection deterministic (
activeIndex,activeButtonId). - Dispatch id-based and event-based actions from each toolbar slot.
API
Model and state:
buttonItems(array or model)itemCountbuttonCountactiveButtonactiveButtonIdactiveIndex
Layout and appearance:
horizontalPaddingverticalPaddingspacingbackgroundColorbackgroundOpacity
Signals:
activeChanged(button, buttonId, index)buttonTriggered(button, buttonId, index, item)buttonEventTriggered(eventName, payload, index, item, buttonId)
Methods:
triggerIndex(index)buttonAt(index)collectButtons()
Compatibility:
buttonsdefault property alias is kept for manualToolbarButtonchildren.
Item Model Contract
Each item can be object or string.
Object fields:
id/buttonId/keyiconName/icon(svg icon name)iconSource/source/url(optional direct source)enabledvisibleselected/activeeventName/event/actioneventPayload/payloadevents(array of string or event object)onTriggered/onClicked/handler
String item:
- treated as
iconName
Callback Context
When callback exists, toolbar invokes it with:
indexitembuttonbuttonIdtoolbareventNamepayloademit(eventName, payload)activate(index)
Usage
import LVRS 1.0 as LV
LV.HierarchyToolbar {
id: toolbar
buttonItems: [
{
id: "structure",
iconName: "projectStructure",
selected: true,
eventName: "hierarchy.structure"
},
{
id: "layers",
iconName: "projectStructure",
events: [
"hierarchy.layers",
{ name: "analytics.hierarchy.layers", payload: ({ source: "toolbar" }) }
],
onClicked: function(ctx) {
ctx.emit("hierarchy.layers.clicked", ({ id: ctx.buttonId }))
}
}
]
}
Failure Pattern
If buttonItems object entries omit both iconName and iconSource, the slot renders with fallback icon behavior from IconButton.
Always provide explicit icon names for predictable visuals.