stocqt Demo: Add error checks

Check for corrupted records, fixing warnings:
qrc:///demos/stocqt/content/StockListModel.qml:90: TypeError: Cannot call method 'split' of undefined

Also check the value and prevent NaN from appearing.

Change-Id: I3a9d010c61fb0f017aef37df7f54a7ad4d7d7d53
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
This commit is contained in:
Friedemann Kleint 2017-03-16 16:11:45 +01:00
parent 7a125135e1
commit 71cd0a58c0
1 changed files with 18 additions and 17 deletions

View File

@ -82,27 +82,28 @@ ListModel {
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.LOADING || xhr.readyState === XMLHttpRequest.DONE) {
var records = xhr.responseText.split('\n');
var unknown = "n/a";
set(index, {"value": unknown, "change": unknown, "changePercentage": unknown});
if (records.length > 0 && xhr.status == 200) {
var r = records[1].split(',');
var today = parseFloat(r[4]);
setProperty(index, "value", today.toFixed(2));
if (!isNaN(today))
setProperty(index, "value", today.toFixed(2));
if (records.length > 2) {
r = records[2].split(',');
var yesterday = parseFloat(r[4]);
var change = today - yesterday;
if (change >= 0.0)
setProperty(index, "change", "+" + change.toFixed(2));
else
setProperty(index, "change", change.toFixed(2));
r = records[2].split(',');
var yesterday = parseFloat(r[4]);
var change = today - yesterday;
if (change >= 0.0)
setProperty(index, "change", "+" + change.toFixed(2));
else
setProperty(index, "change", change.toFixed(2));
var changePercentage = (change / yesterday) * 100.0;
if (changePercentage >= 0.0)
setProperty(index, "changePercentage", "+" + changePercentage.toFixed(2) + "%");
else
setProperty(index, "changePercentage", changePercentage.toFixed(2) + "%");
} else {
var unknown = "n/a";
set(index, {"value": unknown, "change": unknown, "changePercentage": unknown});
var changePercentage = (change / yesterday) * 100.0;
if (changePercentage >= 0.0)
setProperty(index, "changePercentage", "+" + changePercentage.toFixed(2) + "%");
else
setProperty(index, "changePercentage", changePercentage.toFixed(2) + "%");
}
}
}
}