Skip to content
AtlasOSFramework API
Browse the docs

SectionRow

One row in a Section: icon, title and subtitle, with a value, extra items, a check mark, a switch or a chevron.

SectionRow is a row of a Section. It has an optional icon, a title and subtitle on the left, and a value, extra items, a check mark, a switch or a chevron on the right. A clickable row takes keyboard focus (Tab), shows a focus ring and activates with Enter or Space. A radio row also moves selection with Up and Down.

SectionRow is a FocusScope. It has three slots, all lists of items (since 1.4.0): leading (before the title; an avatar, a check box), content (replaces the title and subtitle column; a slider that spans the row) and trailing (the default property: a button, a combo box, a spin box).

Example

Section {
    SectionRow {
        title: qsTr("Notifications")
        subtitle: qsTr("Show a banner when an update is ready")
        showSwitch: true
        switchChecked: settings.notify
        onSwitchToggled: checked => settings.notify = checked
    }
    SectionRow {
        title: qsTr("Language")
        value: qsTr("English")
        chevron: true
        onClicked: languagePage.open()
    }
}

Properties

Name Type Default Description
animated bool true Turns the busy spinner; false draws a fixed arc (for screenshots).
atlasRow bool (read-only) — Always true; marks the item as a row so the first one can skip its separator.
busy bool false Shows a spinner in place of the value and chevron; the row stays enabled but does not activate.
byMouse bool false True after a click, so the focus ring shows for keyboard focus only.
checkmark bool false Shows an accent check mark; on a radio row it is the checked state.
chevron bool false Shows a chevron at the trailing end and, unless clickable is set, makes the row clickable.
clickable bool chevron Whether the row takes focus, shows hover and focus feedback and emits clicked().
content list<Item> (read-only) — Items that replace the title and subtitle column (a slider that spans the row); give them Layout.fillWidth.
density int AtlasStyle.density AtlasStyle.Normal or AtlasStyle.Compact; Compact shrinks the height and vertical padding to about 75%.
disclosure bool false Turns the chevron a quarter turn when expanded (for rows that open and close something).
expanded bool false Whether a disclosure row is open.
iconName string "" A theme icon name shown before the title; ignored when leading has items.
isFirst bool (read-only) — True for the first visible row in its Section, which draws no separator above itself.
leading list<Item> (read-only) — Items before the title (an avatar, a check box); they replace the icon. Read-only list; add children by declaring them.
mirrored bool (read-only) — True when the layout is mirrored (right-to-left).
radio bool false Makes the row a radio button for screen readers; Up and Down move the selection to the neighbouring radio row.
showSwitch bool false Shows an AtlasSwitch at the trailing end.
subtitle string "" A second, smaller line under the title.
switchChecked bool false The state the switch shows. Bind it to the real setting: after switchToggled the switch goes back to this value.
title string "" The main text.
trailing list<Item> (read-only) — The default property: items at the trailing end (a button, a combo box). They keep their own focus and Tab order after the row's.
value string "" Text at the trailing end, dimmed and elided; hidden while busy.

Signals

Name Description
clicked() Emitted when the row is clicked or activated with Enter or Space.
switchToggled(bool checked) Emitted when the user flips the switch; checked is the requested state. Write it to the setting, the switch shows switchChecked.

Methods

Signature Description
activate(var event): var Handles Enter and Space: emits clicked() when the row itself has focus and is clickable. Called by the key handlers.
ensureVisible(): var Scrolls the enclosing Flickable so the row is on screen.
step(var forward, var event): var Moves focus and selection to the next (forward) or previous radio row; does nothing on a non-radio row.

Note

Items in trailing keep their own focus and Tab order after the row's, and a key they don't use doesn't activate the row. While busy the row stays enabled but does not activate.

Accessibility

A clickable row is a button for screen readers, a radio row a radio button and any other a list item. Its description is the subtitle and value, and "Busy" while busy. A switch row is exposed through its switch only, so the name is not read twice.