18 import Ubuntu.Components 0.1
24 property int minimumHorizontalSpacing: units.gu(0.5)
26 property int maximumNumberOfColumns: 6
27 readonly
property int columns: gridView.columns
28 property alias verticalSpacing: gridView.verticalSpacing
29 readonly
property alias margins: gridView.margin
30 property int delegateWidth
31 property int delegateHeight
32 property alias model: gridView.model
33 property alias delegate: gridView.delegate
34 readonly
property int cellWidth: gridView.cellWidth
35 readonly
property int cellHeight: gridView.cellHeight
36 readonly
property int totalContentHeight: {
37 return contentHeightForRows(Math.ceil(gridView.model.count / columns))
39 property alias interactive: gridView.interactive
40 readonly property alias flicking: gridView.flicking
41 readonly property alias moving: gridView.moving
42 readonly property alias pressDelay: gridView.pressDelay
43 readonly property alias originY: gridView.originY
44 property alias delegateCreationBegin: gridView.delegateCreationBegin
45 property alias delegateCreationEnd: gridView.delegateCreationEnd
46 property alias highlightIndex: gridView.highlightIndex
47 readonly property alias currentItem: gridView.currentItem
49 function contentHeightForRows(rows) {
50 return rows * cellHeight + verticalSpacing
55 objectName:
"responsiveGridViewGrid"
61 clip: parent.height != totalContentHeight
63 function pixelToGU(value) {
64 return Math.floor(value / units.gu(1));
67 function spacingForColumns(columns) {
69 var spacingGU = pixelToGU(allocatableHorizontalSpace / columns);
70 return units.gu(spacingGU);
73 function columnsForSpacing(spacing) {
75 return Math.max(1, Math.floor(parent.width / (delegateWidth + spacing)));
78 property real allocatableHorizontalSpace: parent.width - columns * delegateWidth
79 property int columns: Math.min(columnsForSpacing(minimumHorizontalSpacing), maximumNumberOfColumns)
80 property real horizontalSpacing: spacingForColumns(columns)
81 property real verticalSpacing: horizontalSpacing
82 property
int margin: allocatableHorizontalSpace - columns * horizontalSpacing
83 property
int highlightIndex: -1
85 cellWidth: delegateWidth + horizontalSpacing
86 cellHeight: delegateHeight + verticalSpacing
88 onHighlightIndexChanged: {
89 if (highlightIndex != -1) {
90 currentIndex = highlightIndex