@@ -16,11 +16,18 @@
1616
1717import QtQuick 2.0
1818
19−QtObject {
19+Item {
2020 id: cardTool
2121 property var template
2222 property var components
2323
24+ // FIXME: Saviq
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.
27+ width: 0
28+ height: 0
29+ clip: true
30+
2431 property var cardWidth: {
2532 switch (template !== undefined && template["category-layout"]) {
2633 case "grid":
@@ -45,7 +52,7 @@ QtObject {
4552 if (template["card-size"] >= 12 && template["card-size"] <= 38) return units.gu(template["card-size"]);
4653 return units.gu(18.5);
4754 case "grid":
48− return priv.card.implicitHeight
55+ return card.implicitHeight
4956 case undefined:
5057 case "organic-grid":
5158 case "vertical-journal":
@@ -54,7 +61,16 @@ QtObject {
5461 }
5562 }
5663
57− property QtObject priv: QtObject {
64+ property QtObject priv: card
65+
66+ Card {
67+ id: card
68+ template: cardTool.template
69+ components: cardTool.components
70+
71+ width: cardTool.cardWidth || implicitWidth
72+ height: cardTool.cardHeight || implicitHeight
73+
5874 property var fields: ["art", "mascot", "title", "subtitle", "summary"]
5975 property var maxData: {
6076 "art": Qt.resolvedUrl("graphics/checkers.png"),
@@ -64,26 +80,18 @@ QtObject {
6480 "summary": "—\n—\n—\n—\n—"
6581 }
6682
67− property Item card: Card {
68− template: cardTool.template
69− components: cardTool.components
70−
71− width: cardTool.cardWidth || implicitWidth
72− height: cardTool.cardHeight || implicitHeight
73−
74− onComponentsChanged: {
75− var data = {};
76− for (var k in priv.fields) {
77− var component = components[priv.fields[k]];
78− var key = priv.fields[k];
79− if ((typeof component === "string" && component.length > 0) ||
80− (typeof component === "object" && component !== null
81− && typeof component["field"] === "string" && component["field"].length > 0)) {
82− data[key] = priv.maxData[key];
83− }
83+ onComponentsChanged: {
84+ var data = {};
85+ for (var k in fields) {
86+ var component = components[fields[k]];
87+ var key = fields[k];
88+ if ((typeof component === "string" && component.length > 0) ||
89+ (typeof component === "object" && component !== null
90+ && typeof component["field"] === "string" && component["field"].length > 0)) {
91+ data[key] = maxData[key];
8492 }
85− cardData = data;
8693 }
87− }
94+ cardData = data;
95+ }
8896 }
8997}