diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2011-03-19 11:47:10 +0000 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2011-03-19 11:47:10 +0000 |
commit | fa565048f6b6d1928a216246619ad52b607ac7c2 (patch) | |
tree | 37f4e339a3736b00be63151c7efa31d361aca84c /rbutil | |
parent | e937a78860c302614241447b50afd997ea091f07 (diff) | |
download | rockbox-fa565048f6b6d1928a216246619ad52b607ac7c2.tar.gz rockbox-fa565048f6b6d1928a216246619ad52b607ac7c2.zip |
Fix Rockbox Utility update detection on Linux 64bit.
Remove the "64bit" part of the filename before comparing. We're checking for
that in the filename explicitly but the version number doesn't contain it, so
the comparison will otherwise misinterpret it as additional version
information.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29617 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil')
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.cpp | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp index 98c1024f60..328fb5d8c7 100644 --- a/rbutil/rbutilqt/rbutilqt.cpp +++ b/rbutil/rbutilqt/rbutilqt.cpp | |||
@@ -1280,44 +1280,49 @@ void RbUtilQt::downloadUpdateDone(bool error) | |||
1280 | } | 1280 | } |
1281 | else { | 1281 | else { |
1282 | QString toParse(update->readAll()); | 1282 | QString toParse(update->readAll()); |
1283 | 1283 | ||
1284 | QRegExp searchString("<a[^>]*>([a-zA-Z]+[^<]*)</a>"); | 1284 | QRegExp searchString("<a[^>]*>([a-zA-Z]+[^<]*)</a>"); |
1285 | QStringList rbutilList; | 1285 | QStringList rbutilList; |
1286 | int pos = 0; | 1286 | int pos = 0; |
1287 | while ((pos = searchString.indexIn(toParse, pos)) != -1) | 1287 | while ((pos = searchString.indexIn(toParse, pos)) != -1) |
1288 | { | 1288 | { |
1289 | rbutilList << searchString.cap(1); | 1289 | rbutilList << searchString.cap(1); |
1290 | pos += searchString.matchedLength(); | 1290 | pos += searchString.matchedLength(); |
1291 | } | 1291 | } |
1292 | qDebug() << "[Checkupdate] " << rbutilList; | 1292 | qDebug() << "[Checkupdate] " << rbutilList; |
1293 | 1293 | ||
1294 | QString newVersion = ""; | 1294 | QString newVersion = ""; |
1295 | //check if there is a binary with higher version in this list | 1295 | QString foundVersion = ""; |
1296 | // check if there is a binary with higher version in this list | ||
1296 | for(int i=0; i < rbutilList.size(); i++) | 1297 | for(int i=0; i < rbutilList.size(); i++) |
1297 | { | 1298 | { |
1299 | QString item = rbutilList.at(i); | ||
1298 | #if defined(Q_OS_LINUX) | 1300 | #if defined(Q_OS_LINUX) |
1299 | #if defined(__amd64__) | 1301 | #if defined(__amd64__) |
1300 | //skip if it isnt a 64bit build | 1302 | // skip if it isn't a 64 bit build |
1301 | if( !rbutilList.at(i).contains("64bit")) | 1303 | if( !item.contains("64bit")) |
1302 | continue; | 1304 | continue; |
1305 | // strip the "64bit" suffix for comparison | ||
1306 | item = item.remove("64bit"); | ||
1303 | #else | 1307 | #else |
1304 | //skip if it is a 64bit build | 1308 | //skip if it is a 64bit build |
1305 | if(rbutilList.at(i).contains("64bit")) | 1309 | if(item.contains("64bit")) |
1306 | continue; | 1310 | continue; |
1307 | #endif | 1311 | #endif |
1308 | #endif | 1312 | #endif |
1309 | //check if it is newer, and remember newest | 1313 | // check if it is newer, and remember newest |
1310 | if(Utils::compareVersionStrings(VERSION, rbutilList.at(i)) == 1) | 1314 | if(Utils::compareVersionStrings(VERSION, item) == 1) |
1311 | { | 1315 | { |
1312 | if(Utils::compareVersionStrings(newVersion, rbutilList.at(i)) == 1) | 1316 | if(Utils::compareVersionStrings(newVersion, item) == 1) |
1313 | { | 1317 | { |
1314 | newVersion = rbutilList.at(i); | 1318 | newVersion = item; |
1319 | foundVersion = rbutilList.at(i); | ||
1315 | } | 1320 | } |
1316 | } | 1321 | } |
1317 | } | 1322 | } |
1318 | 1323 | ||
1319 | // if we found something newer, display info | 1324 | // if we found something newer, display info |
1320 | if(newVersion != "") | 1325 | if(foundVersion != "") |
1321 | { | 1326 | { |
1322 | QString url = SystemInfo::value(SystemInfo::RbutilUrl).toString(); | 1327 | QString url = SystemInfo::value(SystemInfo::RbutilUrl).toString(); |
1323 | #if defined(Q_OS_WIN32) | 1328 | #if defined(Q_OS_WIN32) |
@@ -1327,11 +1332,12 @@ void RbUtilQt::downloadUpdateDone(bool error) | |||
1327 | #elif defined(Q_OS_MACX) | 1332 | #elif defined(Q_OS_MACX) |
1328 | url += "macosx/"; | 1333 | url += "macosx/"; |
1329 | #endif | 1334 | #endif |
1330 | url += newVersion; | 1335 | url += foundVersion; |
1331 | 1336 | ||
1332 | QMessageBox::information(this,tr("RockboxUtility Update available"), | 1337 | QMessageBox::information(this,tr("RockboxUtility Update available"), |
1333 | tr("<b>New RockboxUtility Version available.</b> <br><br>" | 1338 | tr("<b>New RockboxUtility Version available.</b> <br><br>" |
1334 | "Download it from here: <a href='%1'>%2</a>").arg(url).arg(newVersion) ); | 1339 | "Download it from here: <a href='%1'>%2</a>") |
1340 | .arg(url).arg(foundVersion)); | ||
1335 | ui.statusbar->showMessage(tr("New version of Rockbox Utility available.")); | 1341 | ui.statusbar->showMessage(tr("New version of Rockbox Utility available.")); |
1336 | } | 1342 | } |
1337 | else { | 1343 | else { |