57 Accessible.ignored: true
65 property real cellWidth: __inferredCellWidth
73 property real cellHeight: __inferredCellHeight
75 function __isLayoutChild(child) {
76 return child && child.visible
77 && String(child).indexOf("QQuickRepeater") !== 0;
80 readonly
property int __visibleChildCount: {
82 for (
const child of children) {
83 if (__isLayoutChild(child))
89 readonly
property real __inferredCellWidth: {
91 for (
const child of children) {
92 if (!__isLayoutChild(child))
94 const preferred = child.Layout.preferredWidth;
95 const effective = Number.isFinite(preferred) && preferred >= 0
96 ? preferred : child.implicitWidth;
97 if (Number.isFinite(effective) && effective > maximum)
103 readonly
property real __inferredCellHeight: {
105 for (
const child of children) {
106 if (!__isLayoutChild(child))
108 const preferred = child.Layout.preferredHeight;
109 const effective = Number.isFinite(preferred) && preferred >= 0
110 ? preferred : child.implicitHeight;
111 if (Number.isFinite(effective) && effective > maximum)
117 function __fittedTrackCount(availableSize, spacing, minimumSize) {
118 if (__visibleChildCount < 1
119 || !Number.isFinite(availableSize) || availableSize <= 0
120 || !Number.isFinite(spacing) || spacing < 0
121 || !Number.isFinite(minimumSize) || minimumSize <= 0)
124 const fitted = Math.floor((availableSize + spacing)
125 / (minimumSize + spacing));
126 return Math.max(1, Math.min(fitted, __visibleChildCount));
129 columns: flow === GridLayout.LeftToRight
130 ? __fittedTrackCount(width, columnSpacing, cellWidth) : 1
131 rows: flow === GridLayout.TopToBottom
132 ? __fittedTrackCount(height, rowSpacing, cellHeight) : 1
134 columnSpacing: MD.
Tokens.measurement.space200
135 rowSpacing: MD.
Tokens.measurement.space200
136 uniformCellWidths: true
137 uniformCellHeights: true
Material Design 3 design tokens.