LVRS Storyboard Frame

components/navigation/HierarchyToolbar.svx

Path: components/navigation/HierarchyToolbar.svx

Last modified:

HierarchyToolbar

위치: qml/components/navigation/HierarchyToolbar.qml

HierarchyToolbar는 IconButton 배열로 렌더링되는 계층 구조 패널의 상단 도구 모음입니다.

목적

  • 외부 배열 모델에서 도구 모음 버튼을 렌더링합니다.
  • 활성 슬롯 선택을 결정적으로 유지합니다(activeIndex, activeButtonId).
  • 각 도구 모음 슬롯에서 ID 기반 및 이벤트 기반 작업을 전달합니다.

API

모델 및 상태:

  • buttonItems(어레이 또는 모델)
  • itemCount
  • buttonCount
  • activeButton
  • activeButtonId
  • activeIndex

레이아웃 및 모양:

  • horizontalPadding
  • verticalPadding
  • spacing
  • backgroundColor
  • backgroundOpacity

신호:

  • activeChanged(button, buttonId, index)
  • buttonTriggered(button, buttonId, index, item)
  • buttonEventTriggered(eventName, payload, index, item, buttonId)

방법:

  • triggerIndex(index)
  • buttonAt(index)
  • collectButtons()

호환성:

  • buttons 기본 속성 별칭은 수동 ToolbarButton 자식을 위해 유지됩니다.

아이템 모델 계약

각 항목은 객체 또는 문자열일 수 있습니다.

개체 필드:

  • id / buttonId / key
  • iconName / icon (svg 아이콘 이름)
  • iconSource / source / url(직접 소스 옵션)
  • enabled
  • visible
  • selected / active
  • eventName / event / action
  • eventPayload / payload
  • events(문자열 또는 이벤트 객체의 배열)
  • onTriggered / onClicked / handler

문자열 항목:

  • iconName로 취급

콜백 컨텍스트

콜백이 존재하면 툴바는 다음을 사용하여 콜백을 호출합니다.

  • index
  • item
  • button
  • buttonId
  • toolbar
  • eventName
  • payload
  • emit(eventName, payload)
  • activate(index)

사용법

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 }))
            }
        }
    ]
}

실패 패턴

buttonItems 객체 항목이 iconName 및 iconSource를 모두 생략하는 경우 슬롯은 IconButton의 대체 경로 아이콘 동작으로 렌더링됩니다. 예측 가능한 시각적 개체에는 항상 명시적인 아이콘 이름을 제공하세요.