on xenial help sign in
Do not create fallback code for the card tool fake card
a552d24Albert Astals Cid
plugins/Dash/CardCreator.js+5−5
@@ -398,7 +398,7 @@ function sanitizeColor(colorString) {
398 return colorString;
398 return colorString;
399}
399}
400
400
401−function cardString(template, components) {
401+function cardString(template, components, isCardTool) {
402 var code;
402 var code;
403
403
404 var templateInteractive = (template == null ? true : (template["non-interactive"] !== undefined ? !template["non-interactive"] : true)) ? "true" : "false";
404 var templateInteractive = (template == null ? true : (template["non-interactive"] !== undefined ? !template["non-interactive"] : true)) ? "true" : "false";
@@ -497,7 +497,7 @@ function cardString(template, components) {
497 if (isNaN(aspectRatio)) {
497 if (isNaN(aspectRatio)) {
498 aspectRatio = 1;
498 aspectRatio = 1;
499 }
499 }
500− var fallback = components["art"] && components["art"]["fallback"] || "";
500+ var fallback = !isCardTool && components["art"] && components["art"]["fallback"] || "";
501 fallback = encodeURI(fallback);
501 fallback = encodeURI(fallback);
502 var fallbackStatusCode = "";
502 var fallbackStatusCode = "";
503 var fallbackURICode = '""';
503 var fallbackURICode = '""';
@@ -599,7 +599,7 @@ function cardString(template, components) {
599 }
599 }
600
600
601 var mascotImageVisible = useMascotShape ? 'false' : 'showHeader';
601 var mascotImageVisible = useMascotShape ? 'false' : 'showHeader';
602− var fallback = components["mascot"] && components["mascot"]["fallback"] || "";
602+ var fallback = !isCardTool && components["mascot"] && components["mascot"]["fallback"] || "";
603 fallback = encodeURI(fallback);
603 fallback = encodeURI(fallback);
604 var fallbackStatusCode = "";
604 var fallbackStatusCode = "";
605 var fallbackURICode = '""';
605 var fallbackURICode = '""';
@@ -854,13 +854,13 @@ function cardString(template, components) {
854 return code;
854 return code;
855}
855}
856
856
857−function createCardComponent(parent, template, components, identifier) {
857+function createCardComponent(parent, template, components, isCardTool, identifier) {
858 var imports = 'import QtQuick 2.4; \n\
858 var imports = 'import QtQuick 2.4; \n\
859 import Ubuntu.Components 1.3; \n\
859 import Ubuntu.Components 1.3; \n\
860 import Ubuntu.Settings.Components 0.1; \n\
860 import Ubuntu.Settings.Components 0.1; \n\
861 import Dash 0.1;\n\
861 import Dash 0.1;\n\
862 import Utils 0.1;\n';
862 import Utils 0.1;\n';
863− var card = cardString(template, components);
863+ var card = cardString(template, components, isCardTool);
864 var code = imports + 'Component {\n' + card + '}\n';
864 var code = imports + 'Component {\n' + card + '}\n';
865
865
866 try {
866 try {
plugins/Dash/CardCreatorCache.qml+4−3
@@ -23,16 +23,17 @@ QtObject {
23
23
24 property var cache: new Object();
24 property var cache: new Object();
25
25
26− function getCardComponent(template, components) {
26+ function getCardComponent(template, components, isCardTool) {
27 if (template === undefined || components === undefined)
27 if (template === undefined || components === undefined)
28 return undefined;
28 return undefined;
29
29
30 var tString = JSON.stringify(template);
30 var tString = JSON.stringify(template);
31 var cString = JSON.stringify(components);
31 var cString = JSON.stringify(components);
32− var allString = tString + cString;
32+ var allString = tString + cString + isCardTool;
33+ console.log(allString);
33 var component = cache[allString];
34 var component = cache[allString];
34 if (component === undefined) {
35 if (component === undefined) {
35− component = CardCreator.createCardComponent(root, template, components, allString);
36+ component = CardCreator.createCardComponent(root, template, components, isCardTool, allString);
36 cache[allString] = component;
37 cache[allString] = component;
37 }
38 }
38 return component;
39 return component;
qml/Dash/CardTool.qml+2−2
@@ -66,7 +66,7 @@ Item {
66 return layout;
66 return layout;
67 }
67 }
68
68
69− property var cardComponent: CardCreatorCache.getCardComponent(cardTool.template, cardTool.components);
69+ property var cardComponent: CardCreatorCache.getCardComponent(cardTool.template, cardTool.components, false);
70
70
71 // FIXME: Saviq
71 // FIXME: Saviq
72 // Only way for the card below to actually be laid out completely.
72 // Only way for the card below to actually be laid out completely.
@@ -216,7 +216,7 @@ Item {
216 "summary": "—\n—\n—\n—\n—",
216 "summary": "—\n—\n—\n—\n—",
217 "attributes": attributesModel.model
217 "attributes": attributesModel.model
218 }
218 }
219− sourceComponent: cardTool.cardComponent
219+ sourceComponent: CardCreatorCache.getCardComponent(cardTool.template, cardTool.components, true);
220 onLoaded: {
220 onLoaded: {
221 item.objectName = "cardToolCard";
221 item.objectName = "cardToolCard";
222 item.asynchronous = false;
222 item.asynchronous = false;
tests/plugins/Dash/cardcreatortest.qml+2−2
@@ -20,10 +20,10 @@ import "../../../plugins/Dash/CardCreator.js" as CardCreator
20Item {
20Item {
21 id: root
21 id: root
22 function cardString(template, components) {
22 function cardString(template, components) {
23− return CardCreator.cardString(JSON.parse(template), JSON.parse(components));
23+ return CardCreator.cardString(JSON.parse(template), JSON.parse(components), false);
24 }
24 }
25
25
26 function createCardComponent(template, components) {
26 function createCardComponent(template, components) {
27− return CardCreator.createCardComponent(root, JSON.parse(template), JSON.parse(components)) !== null;
27+ return CardCreator.createCardComponent(root, JSON.parse(template), JSON.parse(components), false) !== null;
28 }
28 }
29}
29}