summaryrefslogtreecommitdiff
path: root/rbutil
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2011-03-19 11:47:10 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2011-03-19 11:47:10 +0000
commitfa565048f6b6d1928a216246619ad52b607ac7c2 (patch)
tree37f4e339a3736b00be63151c7efa31d361aca84c /rbutil
parente937a78860c302614241447b50afd997ea091f07 (diff)
downloadrockbox-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.cpp40
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 {