summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2015-01-31 18:30:42 +0100
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2015-05-02 16:52:13 +0200
commit72b81c25590b972c785ff30e0e9732a756ab9e9e (patch)
tree7b28c503d92431b01a9345ecbd06d702751ceede
parent43b1ccffcc2df42146bde053bb13e5168dfa2334 (diff)
downloadrockbox-72b81c25590b972c785ff30e0e9732a756ab9e9e.tar.gz
rockbox-72b81c25590b972c785ff30e0e9732a756ab9e9e.zip
Improve update check information dialog.
Show the user both the current and updated version. Change-Id: Ief693cce020a39a0c79bf2705da4a44b7bd15928
-rw-r--r--rbutil/rbutilqt/base/utils.cpp14
-rw-r--r--rbutil/rbutilqt/base/utils.h1
-rw-r--r--rbutil/rbutilqt/changelog.txt3
-rw-r--r--rbutil/rbutilqt/rbutilqt.cpp9
-rw-r--r--rbutil/rbutilqt/test/test-compareversion.cpp48
5 files changed, 60 insertions, 15 deletions
diff --git a/rbutil/rbutilqt/base/utils.cpp b/rbutil/rbutilqt/base/utils.cpp
index d2ed49bae3..724a1553f1 100644
--- a/rbutil/rbutilqt/base/utils.cpp
+++ b/rbutil/rbutilqt/base/utils.cpp
@@ -342,6 +342,20 @@ QString Utils::checkEnvironment(bool permission)
342 else 342 else
343 return text; 343 return text;
344} 344}
345
346/** @brief Trim version string from filename to version part only.
347 * @param s Version string
348 * @return Version part of string if found, input string on error.
349 */
350QString Utils::trimVersionString(QString s)
351{
352 QRegExp r = QRegExp(".*([\\d\\.]+\\d+[a-z]?).*");
353 if(r.indexIn(s) != -1) {
354 return r.cap(1);
355 }
356 return s;
357}
358
345/** @brief Compare two version strings. 359/** @brief Compare two version strings.
346 * @param s1 first version string 360 * @param s1 first version string
347 * @param s2 second version string 361 * @param s2 second version string
diff --git a/rbutil/rbutilqt/base/utils.h b/rbutil/rbutilqt/base/utils.h
index 9905341ad1..bc45ebd857 100644
--- a/rbutil/rbutilqt/base/utils.h
+++ b/rbutil/rbutilqt/base/utils.h
@@ -49,6 +49,7 @@ public:
49 static QString findExecutable(QString name); 49 static QString findExecutable(QString name);
50 static QString checkEnvironment(bool permission); 50 static QString checkEnvironment(bool permission);
51 static int compareVersionStrings(QString s1, QString s2); 51 static int compareVersionStrings(QString s1, QString s2);
52 static QString trimVersionString(QString s);
52 static QString filesystemName(QString path); 53 static QString filesystemName(QString path);
53 static QStringList mountpoints(enum MountpointsFilter type = MountpointsAll); 54 static QStringList mountpoints(enum MountpointsFilter type = MountpointsAll);
54 static QString resolveDevicename(QString path); 55 static QString resolveDevicename(QString path);
diff --git a/rbutil/rbutilqt/changelog.txt b/rbutil/rbutilqt/changelog.txt
index d11122455c..0fc2c95784 100644
--- a/rbutil/rbutilqt/changelog.txt
+++ b/rbutil/rbutilqt/changelog.txt
@@ -21,6 +21,7 @@ Version 1.4
21* Fix manual link for Archos Recorder V2. 21* Fix manual link for Archos Recorder V2.
22 22
23Version 1.4.1 23Version 1.4.1
24* Fix crash on detecting player in MTP mode. 24* Fix crash on detecting player in MTP mode (FS#12989).
25* Extend hint when uninstallation requires reinstalling the Original Firmware. 25* Extend hint when uninstallation requires reinstalling the Original Firmware.
26* Improve update check information dialog.
26 27
diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp
index b1ea041858..4c06163404 100644
--- a/rbutil/rbutilqt/rbutilqt.cpp
+++ b/rbutil/rbutilqt/rbutilqt.cpp
@@ -729,10 +729,11 @@ void RbUtilQt::downloadUpdateDone(bool error)
729#endif 729#endif
730 url += foundVersion; 730 url += foundVersion;
731 731
732 QMessageBox::information(this,tr("RockboxUtility Update available"), 732 QMessageBox::information(this,tr("Rockbox Utility Update available"),
733 tr("<b>New RockboxUtility Version available.</b> <br><br>" 733 tr("<b>New Rockbox Utility version available.</b><br><br>"
734 "Download it from here: <a href='%1'>%2</a>") 734 "You are currently using version %1. "
735 .arg(url).arg(foundVersion)); 735 "Get version %2 at <a href='%3'>%3</a>")
736 .arg(VERSION).arg(Utils::trimVersionString(foundVersion)).arg(url));
736 ui.statusbar->showMessage(tr("New version of Rockbox Utility available.")); 737 ui.statusbar->showMessage(tr("New version of Rockbox Utility available."));
737 } 738 }
738 else { 739 else {
diff --git a/rbutil/rbutilqt/test/test-compareversion.cpp b/rbutil/rbutilqt/test/test-compareversion.cpp
index fa1b889254..c075c2af12 100644
--- a/rbutil/rbutilqt/test/test-compareversion.cpp
+++ b/rbutil/rbutilqt/test/test-compareversion.cpp
@@ -27,17 +27,18 @@ class TestVersionCompare : public QObject
27{ 27{
28 Q_OBJECT 28 Q_OBJECT
29 private slots: 29 private slots:
30 void testMain(); 30 void testCompare();
31 void testTrim();
31}; 32};
32 33
33 34
34struct testvector { 35struct compvector {
35 const char* first; 36 const char* first;
36 const char* second; 37 const char* second;
37 const int expected; 38 const int expected;
38}; 39};
39 40
40const struct testvector testdata[] = 41const struct compvector compdata[] =
41{ 42{
42 { "1.2.3", "1.2.3 ", 0 }, 43 { "1.2.3", "1.2.3 ", 0 },
43 { "1.2.3", " 1.2.3", 0 }, 44 { "1.2.3", " 1.2.3", 0 },
@@ -73,17 +74,44 @@ const struct testvector testdata[] =
73 { "prog-1.2a-64bit.tar.bz2","prog-1.2.3-64bit.tar.bz2", 1 }, 74 { "prog-1.2a-64bit.tar.bz2","prog-1.2.3-64bit.tar.bz2", 1 },
74}; 75};
75 76
77struct trimvector {
78 const char* input;
79 const QString expected;
80};
81
82const struct trimvector trimdata[] =
83{
84 { "prog-1.2-64bit.tar.bz2", "1.2" },
85 { "prog-1.2.tar.bz2", "1.2" },
86 { "1.2.3", "1.2.3" },
87 { " 1.2.3", "1.2.3" },
88 { "1.2.3 ", "1.2.3" },
89 { "10.22.33", "10.22.33" },
90 { "test-1.2.3", "1.2.3" },
91 { "1.2.3", "1.2.3" },
92 { "test-1.2.3.tar.gz", "1.2.3" },
93 { "prog-1.2-64bit.tar.bz2", "1.2" },
94 { "prog-1.2a.tar.bz2", "1.2a" },
95 { "prog-1.2a-64bit.tar.bz2","1.2a" },
96};
76 97
77void TestVersionCompare::testMain() 98void TestVersionCompare::testCompare()
78{ 99{
79 unsigned int i; 100 unsigned int i;
80 for(i = 0; i < sizeof(testdata) / sizeof(struct testvector); i++) { 101 for(i = 0; i < sizeof(compdata) / sizeof(struct compvector); i++) {
81 QCOMPARE(Utils::compareVersionStrings(testdata[i].first, 102 QCOMPARE(Utils::compareVersionStrings(compdata[i].first,
82 testdata[i].second), testdata[i].expected); 103 compdata[i].second), compdata[i].expected);
83 // inverse test possible because function return values are symmetrical. 104 // inverse test possible because function return values are symmetrical.
84 if(testdata[i].expected != 0) 105 if(compdata[i].expected != 0)
85 QCOMPARE(Utils::compareVersionStrings(testdata[i].second, 106 QCOMPARE(Utils::compareVersionStrings(compdata[i].second,
86 testdata[i].first), -testdata[i].expected); 107 compdata[i].first), -compdata[i].expected);
108 }
109}
110
111void TestVersionCompare::testTrim()
112{
113 for(int i = 0; i < sizeof(trimdata) / sizeof(struct trimvector); i++) {
114 QCOMPARE(Utils::trimVersionString(trimdata[i].input), trimdata[i].expected);
87 } 115 }
88} 116}
89 117