@@ -16,11 +16,18 @@
17import QtQuick 2.0
17import QtQuick 2.0
20 id: cardTool
20 id: cardTool
21 property var template
21 property var template
22 property var components
22 property var components
25+ // Only way for the card below to actually be laid out completely.
26+ // If invisible or in "data" array, some components are not taken into account.
24 property var cardWidth: {
31 property var cardWidth: {
25 switch (template !== undefined && template["category-layout"]) {
32 switch (template !== undefined && template["category-layout"]) {
26 case "grid":
33 case "grid":
@@ -45,7 +52,7 @@ QtObject {
45 if (template["card-size"] >= 12 && template["card-size"] <= 38) return units.gu(template["card-size"]);
52 if (template["card-size"] >= 12 && template["card-size"] <= 38) return units.gu(template["card-size"]);
46 return units.gu(18.5);
53 return units.gu(18.5);
47 case "grid":
54 case "grid":
48− return priv.card.implicitHeight
55+ return card.implicitHeight
49 case undefined:
56 case undefined:
50 case "organic-grid":
57 case "organic-grid":
51 case "vertical-journal":
58 case "vertical-journal":
@@ -54,7 +61,16 @@ QtObject {
57− property QtObject priv: QtObject {
64+ property QtObject priv: card
68+ template: cardTool.template
69+ components: cardTool.components
71+ width: cardTool.cardWidth || implicitWidth
72+ height: cardTool.cardHeight || implicitHeight
58 property var fields: ["art", "mascot", "title", "subtitle", "summary"]
74 property var fields: ["art", "mascot", "title", "subtitle", "summary"]
59 property var maxData: {
75 property var maxData: {
60 "art": Qt.resolvedUrl("graphics/checkers.png"),
76 "art": Qt.resolvedUrl("graphics/checkers.png"),
@@ -64,26 +80,18 @@ QtObject {
64 "summary": "—\n—\n—\n—\n—"
80 "summary": "—\n—\n—\n—\n—"
67− property Item card: Card {
68− template: cardTool.template
69− components: cardTool.components
71− width: cardTool.cardWidth || implicitWidth
72− height: cardTool.cardHeight || implicitHeight
74− onComponentsChanged: {
83+ onComponentsChanged: {
75− var data = {};
84+ var data = {};
76− for (var k in priv.fields) {
85+ for (var k in fields) {
77− var component = components[priv.fields[k]];
86+ var component = components[fields[k]];
78− var key = priv.fields[k];
87+ var key = fields[k];
79− if ((typeof component === "string" && component.length > 0) ||
88+ if ((typeof component === "string" && component.length > 0) ||
80− (typeof component === "object" && component !== null
89+ (typeof component === "object" && component !== null
81− && typeof component["field"] === "string" && component["field"].length > 0)) {
90+ && typeof component["field"] === "string" && component["field"].length > 0)) {
82− data[key] = priv.maxData[key];
91+ data[key] = maxData[key];