Skip to content
AtlasOSFramework API
Browse the docs

AtlasTreeView

A tree of rows in the Atlas list look, on Qt Quick's TreeView.

Since 1.4.0

AtlasTreeView shows any QAbstractItemModel as a tree: rows as tall as AtlasStyle.rowHeight, a hover tint, selected rows as a small rounded accent-tint highlight, a chevron to expand (mirrored in right-to-left layouts) and one indent per level. Only the rows on screen are made. AtlasTreeModel builds a model from nested JS objects. For a flat list use AtlasListView.

AtlasTreeView is a Qt Quick Templates Control (Qt documentation); its inherited properties work as usual.

Example

AtlasTreeModel {
    id: files
    items: [ { text: "Docs", symbol: Symbols.Folder,
        children: [ { text: "Report.odt" } ] } ]
}
AtlasTreeView {
    model: files
    symbolRole: "symbol"
    selectionMode: AtlasTreeView.MultiSelection
    onActivated: index => open(index)
    onContextMenuRequested: (index, pos) => menu.popup()
    Accessible.name: qsTr("Files")
}

Properties

Name Type Default Description
count int (read-only) — The number of rows shown (expanded rows included).
currentIndex var (read-only) — The QModelIndex of the current row; invalid when there is none.
iconRole string "" The model role that holds an icon name or image url; empty means none.
model var null Any QAbstractItemModel.
selectionMode int AtlasTreeView.SingleSelection How many rows can be selected; the values match DataTable and AtlasListView.
selectionModel QItemSelectionModel* (read-only) — An ItemSelectionModel holding the selected rows, for the app to read.
symbolRole string "" The model role that holds a Symbols value; empty means none.
textRole string "display" The model role shown as the row's text.

Signals

Name Description
activated(var index) Emitted when a row is activated with Return or a double click; index is its QModelIndex.
contextMenuRequested(var index, QPointF pos) Emitted on a right click, the Menu key or Shift+F10; index is the row and pos where to open the menu.

Methods

Signature Description
clearSelection(): var Clears the selection.
collapse(var index): var Collapses the row at index.
collapseAll(): var Collapses every row.
expand(var index): var Expands the row at index.
expandAll(): var Expands every row, at every depth.
isExpanded(var index): var Returns true when the row at index is expanded.
selectAll(): var Selects every row that is shown (MultiSelection only).

Enums

SelectionMode

Value Description
AtlasTreeView.SingleSelection At most one row is selected.
AtlasTreeView.MultiSelection Several rows can be selected (Ctrl toggles, Shift extends).
AtlasTreeView.NoSelection No row is selected; only the current row moves.

Keyboard

AtlasTreeView is one Tab stop.

  • Up, Down, Home, End, Page Up and Page Down move the current row.
  • Right expands the row or enters its first child; Left collapses it or goes to the parent (swapped when mirrored).
  • Return activates; Space selects (toggles in multi selection).
  • Menu or Shift+F10 asks for the context menu.
  • Letters jump to the next row whose text starts with what was typed in the last 500 ms.
  • In multi selection Shift+Up and Shift+Down extend the selection, Ctrl+A selects all and Ctrl+Up and Ctrl+Down move without selecting.

Clicks: Ctrl toggles and Shift extends (multi selection), a double click activates, a right click asks for the context menu. Collapsing a row that hides the current one moves the current row to the collapsed row.