Checkpoint: AutoUpdate reads data from builds.xml and stores it in a QMap

This commit is contained in:
Leonardo Murillo 2015-06-03 10:31:33 -06:00
parent 4b316c6937
commit ef27a7660c
2 changed files with 67 additions and 8 deletions

View file

@ -25,6 +25,7 @@ AutoUpdate::AutoUpdate() {
#ifdef Q_OS_LINUX
_operatingSystem = "ubuntu";
#endif
//connect(this, SIGNAL(latestVersionDataParsed()), this, SLOT(debugBuildData()));
}
AutoUpdate::~AutoUpdate() {
@ -51,6 +52,14 @@ void AutoUpdate::parseLatestVersionData() {
QXmlStreamReader xml(sender);
int version;
QString downloadUrl;
QString releaseTime;
QString releaseNotes;
QString commitSha;
QString pullRequestNumber;
while (!xml.atEnd() && !xml.hasError()) {
if (xml.name().toString() == "project" &&
xml.attributes().hasAttribute("name") &&
@ -67,10 +76,26 @@ void AutoUpdate::parseLatestVersionData() {
if (xml.name().toString() == "build" && xml.tokenType() != QXmlStreamReader::EndElement) {
xml.readNext();
QString version = xml.readElementText();
version = xml.readElementText().toInt();
xml.readNext();
QString url = xml.readElementText();
qDebug() << "[LEOTEST] Release version " << version << " downloadable at: " << url;
downloadUrl = xml.readElementText();
xml.readNext();
releaseTime = xml.readElementText();
xml.readNext();
if (xml.name().toString() == "notes" && xml.tokenType() != QXmlStreamReader::EndElement) {
xml.readNext();
while (!xml.atEnd() && !xml.hasError() && xml.name().toString() != "notes") {
if (xml.name().toString() == "note" && xml.tokenType() != QXmlStreamReader::EndElement) {
releaseNotes = releaseNotes + "\n" + xml.readElementText();
}
xml.readNext();
}
}
xml.readNext();
commitSha = xml.readElementText();
xml.readNext();
pullRequestNumber = xml.readElementText();
appendBuildData(version, downloadUrl, releaseTime, releaseNotes, pullRequestNumber);
}
xml.readNext();
@ -84,4 +109,32 @@ void AutoUpdate::parseLatestVersionData() {
}
}
sender->deleteLater();
emit latestVersionDataParsed();
}
void AutoUpdate::debugBuildData() {
qDebug() << "[LEOTEST] We finished parsing the xml build data";
foreach (int key, _builds.keys()) {
qDebug() << "[LEOTEST] Build number: " << QString::number(key);
foreach (QString detailsKey, _builds[key].keys()) {
qDebug() << "[LEOTEST] Key: " << detailsKey << " Value: " << _builds[key][detailsKey];
}
}
}
void AutoUpdate::performAutoUpdate() {
}
void AutoUpdate::downloadUpdateVersion() {
}
void AutoUpdate::appendBuildData(int versionNumber, QString downloadURL, QString releaseTime, QString releaseNotes, QString pullRequestNumber) {
QMap<QString, QString> thisBuildDetails;
thisBuildDetails.insert("downloadUrl", downloadURL);
thisBuildDetails.insert("releaseTime", releaseTime);
thisBuildDetails.insert("releaseNotes", releaseNotes);
thisBuildDetails.insert("pullRequestNumber", pullRequestNumber);
_builds.insert(versionNumber, thisBuildDetails);
}

View file

@ -38,11 +38,6 @@ public:
~AutoUpdate();
void checkForUpdate();
QMap<int, QMap<QString, QString>> getBuildData() { return _builds; }
void appendBuildData(int versionNumber,
QString downloadURL,
int pullRequestNumber,
QString releaseNotes);
public slots:
@ -55,9 +50,20 @@ private:
void getLatestVersionData();
void performAutoUpdate();
void downloadUpdateVersion();
QMap<int, QMap<QString, QString>> getBuildData() { return _builds; }
void appendBuildData(int versionNumber,
QString downloadURL,
QString releaseTime,
QString releaseNotes,
QString pullRequestNumber);
private slots:
void parseLatestVersionData();
void debugBuildData();
signals:
void latestVersionDataParsed();
};
#endif /* defined(__hifi__AutoUpdate__) */