@@ -19,23 +19,26 @@ import Ubuntu.Components 0.1
19import "../Components"
19import "../Components"
20import Dash 0.1
20import Dash 0.1
22−// A VerticalJournal. Based on defined column width,
22+/*!
23+ \brief A responsive wrapper around VerticalJournal.
23−// delegates are layouted in columns following
25+ Based on defined column width, delegates are laid out in columns following
24−// a top-left most position rule.
26+ a top-left most position rule.
26−// Example:
28+ Example:
28−// +-----+ +-----+ +-----+
30+ +-----+ +-----+ +-----+
29−// | | | 2 | | |
31+ | | | 2 | | |
30−// | | | | | |
32+ | | | | | |
31−// | 1 | +-----+ | 3 |
33+ | 1 | +-----+ | 3 |
32−// | | +-----+ | |
34+ | | +-----+ | |
33−// | | | | +-----+
35+ | | | | +-----+
34−// +-----+ | 4 | +-----+
36+ +-----+ | 4 | +-----+
35−// +-----+ | | | 5 |
37+ +-----+ | | | 5 |
36−// | 6 | +-----+ | |
38+ | 6 | +-----+ | |
37−// | | +-----+
39+ | | +-----+
40 property int minimumColumnSpacing: units.gu(1)
43 property int minimumColumnSpacing: units.gu(1)
@@ -63,18 +66,10 @@ Item {
63 return Math.floor(pixels / units.gu(1))
66 return Math.floor(pixels / units.gu(1))
66− function columnsForSpacing(spacing) {
69+ columnSpacing: {
67− // parent.width = columns * columnWidth +
70+ // parent.width = columns * columnWidth + (columns-1) * spacing + spacing(margins)
68− // (columns-1) * spacing + spacing(margins)
69− return Math.max(1, Math.floor(parent.width / (columnWidth + spacing)))
71+ var expectedColumns = Math.max(1, Math.floor(parent.width / (columnWidth + minimumColumnSpacing)));
72+ Math.floor((parent.width - expectedColumns * columnWidth) / expectedColumns);
72− function spacingForColumns(columns) {
73− var spacingGU = px2gu((parent.width - columns * columnWidth) / columns)
74− return units.gu(spacingGU)
77− readonly property int expectedColumns: columnsForSpacing(minimumColumnSpacing)
78− columnSpacing: spacingForColumns(expectedColumns)