diff options
Diffstat (limited to 'rbutil/rbutilqt')
-rw-r--r-- | rbutil/rbutilqt/base/utils.cpp | 14 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/utils.h | 1 | ||||
-rw-r--r-- | rbutil/rbutilqt/changelog.txt | 3 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.cpp | 9 | ||||
-rw-r--r-- | rbutil/rbutilqt/test/test-compareversion.cpp | 48 |
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 | */ | ||
350 | QString 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 | ||
23 | Version 1.4.1 | 23 | Version 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 | ||
34 | struct testvector { | 35 | struct 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 | ||
40 | const struct testvector testdata[] = | 41 | const 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 | ||
77 | struct trimvector { | ||
78 | const char* input; | ||
79 | const QString expected; | ||
80 | }; | ||
81 | |||
82 | const 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 | ||
77 | void TestVersionCompare::testMain() | 98 | void 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 | |||
111 | void 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 | ||