diff options
Diffstat (limited to 'rbutil/rbutilqt')
-rw-r--r-- | rbutil/rbutilqt/base/serverinfo.cpp | 14 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/serverinfo.h | 21 | ||||
-rw-r--r-- | rbutil/rbutilqt/configure.cpp | 5 | ||||
-rw-r--r-- | rbutil/rbutilqt/gui/manualwidget.cpp | 10 | ||||
-rw-r--r-- | rbutil/rbutilqt/gui/selectiveinstallwidget.cpp | 16 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.cpp | 6 | ||||
-rw-r--r-- | rbutil/rbutilqt/test/test-serverinfo.cpp | 4 |
7 files changed, 45 insertions, 31 deletions
diff --git a/rbutil/rbutilqt/base/serverinfo.cpp b/rbutil/rbutilqt/base/serverinfo.cpp index 544348c3b1..08f7f770b7 100644 --- a/rbutil/rbutilqt/base/serverinfo.cpp +++ b/rbutil/rbutilqt/base/serverinfo.cpp | |||
@@ -21,7 +21,15 @@ | |||
21 | #include "systeminfo.h" | 21 | #include "systeminfo.h" |
22 | #include "Logger.h" | 22 | #include "Logger.h" |
23 | 23 | ||
24 | static QSettings* serverSettings = nullptr; | 24 | ServerInfo* ServerInfo::infoInstance = nullptr; |
25 | |||
26 | ServerInfo* ServerInfo::instance() | ||
27 | { | ||
28 | if (infoInstance == nullptr) { | ||
29 | infoInstance = new ServerInfo(); | ||
30 | } | ||
31 | return infoInstance; | ||
32 | } | ||
25 | 33 | ||
26 | // server infos | 34 | // server infos |
27 | const static struct { | 35 | const static struct { |
@@ -131,10 +139,10 @@ QVariant ServerInfo::platformValue(enum ServerInfos info, QString platform) | |||
131 | return value; | 139 | return value; |
132 | } | 140 | } |
133 | 141 | ||
134 | QString ServerInfo::statusToString(int status) | 142 | QString ServerInfo::statusAsString(QString platform) |
135 | { | 143 | { |
136 | QString value; | 144 | QString value; |
137 | switch(status) | 145 | switch(platformValue(CurStatus, platform).toInt()) |
138 | { | 146 | { |
139 | case STATUS_RETIRED: | 147 | case STATUS_RETIRED: |
140 | value = tr("Stable (Retired)"); | 148 | value = tr("Stable (Retired)"); |
diff --git a/rbutil/rbutilqt/base/serverinfo.h b/rbutil/rbutilqt/base/serverinfo.h index e8d7cd5b74..9affcb6032 100644 --- a/rbutil/rbutilqt/base/serverinfo.h +++ b/rbutil/rbutilqt/base/serverinfo.h | |||
@@ -18,6 +18,9 @@ | |||
18 | * | 18 | * |
19 | ****************************************************************************/ | 19 | ****************************************************************************/ |
20 | 20 | ||
21 | // Parse and provide information from build server via build-info file. | ||
22 | // This is a singleton. | ||
23 | |||
21 | #ifndef SERVERINFO_H | 24 | #ifndef SERVERINFO_H |
22 | #define SERVERINFO_H | 25 | #define SERVERINFO_H |
23 | 26 | ||
@@ -47,17 +50,21 @@ class ServerInfo : public QObject | |||
47 | RelCandidateUrl, | 50 | RelCandidateUrl, |
48 | }; | 51 | }; |
49 | 52 | ||
53 | static ServerInfo* instance(); | ||
54 | |||
50 | //! read in buildinfo file | 55 | //! read in buildinfo file |
51 | static void readBuildInfo(QString file); | 56 | void readBuildInfo(QString file); |
52 | //! get a value from server info for a named platform. | 57 | //! get a value from server info for a named platform. |
53 | static QVariant platformValue(enum ServerInfos setting, QString platform = ""); | 58 | QVariant platformValue(enum ServerInfos setting, QString platform = ""); |
54 | //! Convert status number to string | 59 | //! Get status number as string |
55 | static QString statusToString(int status); | 60 | QString statusAsString(QString platform = ""); |
56 | 61 | ||
57 | private: | 62 | protected: |
58 | //! you shouldnt call this, its a fully static class | 63 | ServerInfo() : serverSettings(nullptr) {} |
59 | ServerInfo() {} | ||
60 | 64 | ||
65 | private: | ||
66 | static ServerInfo* infoInstance; | ||
67 | QSettings* serverSettings; | ||
61 | 68 | ||
62 | }; | 69 | }; |
63 | 70 | ||
diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp index d4457a34ed..fc67cb410e 100644 --- a/rbutil/rbutilqt/configure.cpp +++ b/rbutil/rbutilqt/configure.cpp | |||
@@ -385,9 +385,8 @@ void Config::setDevices() | |||
385 | continue; | 385 | continue; |
386 | // construct display name | 386 | // construct display name |
387 | QString curname = SystemInfo::platformValue( | 387 | QString curname = SystemInfo::platformValue( |
388 | SystemInfo::Name, platformList.at(it)).toString() + | 388 | SystemInfo::Name, platformList.at(it)).toString() |
389 | " (" + ServerInfo::statusToString(ServerInfo::platformValue( | 389 | + " (" + ServerInfo::instance()->statusAsString(platformList.at(it)) + ")"; |
390 | ServerInfo::CurStatus, platformList.at(it)).toInt()) +")"; | ||
391 | LOG_INFO() << "add supported device:" << brands.at(c) << curname; | 390 | LOG_INFO() << "add supported device:" << brands.at(c) << curname; |
392 | w2 = new QTreeWidgetItem(w, QStringList(curname)); | 391 | w2 = new QTreeWidgetItem(w, QStringList(curname)); |
393 | w2->setData(0, Qt::UserRole, platformList.at(it)); | 392 | w2->setData(0, Qt::UserRole, platformList.at(it)); |
diff --git a/rbutil/rbutilqt/gui/manualwidget.cpp b/rbutil/rbutilqt/gui/manualwidget.cpp index ba8f6f6064..c10288df10 100644 --- a/rbutil/rbutilqt/gui/manualwidget.cpp +++ b/rbutil/rbutilqt/gui/manualwidget.cpp | |||
@@ -42,9 +42,9 @@ void ManualWidget::updateManual() | |||
42 | if(!m_platform.isEmpty()) | 42 | if(!m_platform.isEmpty()) |
43 | { | 43 | { |
44 | ui.labelPdfManual->setText(tr("<a href='%1'>PDF Manual</a>") | 44 | ui.labelPdfManual->setText(tr("<a href='%1'>PDF Manual</a>") |
45 | .arg(ServerInfo::platformValue(ServerInfo::ManualPdfUrl, m_platform).toString())); | 45 | .arg(ServerInfo::instance()->platformValue(ServerInfo::ManualPdfUrl, m_platform).toString())); |
46 | ui.labelHtmlManual->setText(tr("<a href='%1'>HTML Manual (opens in browser)</a>") | 46 | ui.labelHtmlManual->setText(tr("<a href='%1'>HTML Manual (opens in browser)</a>") |
47 | .arg(ServerInfo::platformValue(ServerInfo::ManualHtmlUrl, m_platform).toString())); | 47 | .arg(ServerInfo::instance()->platformValue(ServerInfo::ManualHtmlUrl, m_platform).toString())); |
48 | } | 48 | } |
49 | else { | 49 | else { |
50 | ui.labelPdfManual->setText(tr("Select a device for a link to the correct manual")); | 50 | ui.labelPdfManual->setText(tr("Select a device for a link to the correct manual")); |
@@ -65,7 +65,7 @@ void ManualWidget::downloadManual(void) | |||
65 | QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes) { | 65 | QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes) { |
66 | return; | 66 | return; |
67 | } | 67 | } |
68 | QString manual = ServerInfo::platformValue(ServerInfo::ManualPdfUrl).toString(); | 68 | QString manual = ServerInfo::instance()->platformValue(ServerInfo::ManualPdfUrl).toString(); |
69 | 69 | ||
70 | ProgressLoggerGui* logger = new ProgressLoggerGui(this); | 70 | ProgressLoggerGui* logger = new ProgressLoggerGui(this); |
71 | logger->show(); | 71 | logger->show(); |
@@ -75,12 +75,12 @@ void ManualWidget::downloadManual(void) | |||
75 | installer->setCache(true); | 75 | installer->setCache(true); |
76 | 76 | ||
77 | if(ui.radioPdf->isChecked()) { | 77 | if(ui.radioPdf->isChecked()) { |
78 | installer->setUrl(ServerInfo::platformValue( | 78 | installer->setUrl(ServerInfo::instance()->platformValue( |
79 | ServerInfo::ManualPdfUrl, m_platform).toString()); | 79 | ServerInfo::ManualPdfUrl, m_platform).toString()); |
80 | installer->setLogSection("Manual (PDF)"); | 80 | installer->setLogSection("Manual (PDF)"); |
81 | } | 81 | } |
82 | else { | 82 | else { |
83 | installer->setUrl(ServerInfo::platformValue( | 83 | installer->setUrl(ServerInfo::instance()->platformValue( |
84 | ServerInfo::ManualZipUrl, m_platform).toString()); | 84 | ServerInfo::ManualZipUrl, m_platform).toString()); |
85 | installer->setLogSection("Manual (HTML)"); | 85 | installer->setLogSection("Manual (HTML)"); |
86 | } | 86 | } |
diff --git a/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp b/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp index f875844c9c..805a432877 100644 --- a/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp +++ b/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp | |||
@@ -69,7 +69,7 @@ void SelectiveInstallWidget::selectedVersionChanged(int index) | |||
69 | if(current == "development") | 69 | if(current == "development") |
70 | ui.selectedDescription->setText(tr("The development version is " | 70 | ui.selectedDescription->setText(tr("The development version is " |
71 | "updated on every code change. Last update was on %1").arg( | 71 | "updated on every code change. Last update was on %1").arg( |
72 | ServerInfo::platformValue(ServerInfo::BleedingDate).toString())); | 72 | ServerInfo::instance()->platformValue(ServerInfo::BleedingDate).toString())); |
73 | if(current == "rc") | 73 | if(current == "rc") |
74 | ui.selectedDescription->setText(tr("This will eventually become the " | 74 | ui.selectedDescription->setText(tr("This will eventually become the " |
75 | "next Rockbox version. Install it to help testing.")); | 75 | "next Rockbox version. Install it to help testing.")); |
@@ -91,11 +91,11 @@ void SelectiveInstallWidget::updateVersion(void) | |||
91 | 91 | ||
92 | // re-populate all version items | 92 | // re-populate all version items |
93 | m_versions.clear(); | 93 | m_versions.clear(); |
94 | m_versions.insert("release", ServerInfo::platformValue(ServerInfo::CurReleaseVersion).toString()); | 94 | m_versions.insert("release", ServerInfo::instance()->platformValue(ServerInfo::CurReleaseVersion).toString()); |
95 | // Don't populate RC or development selections if target has been retired. | 95 | // Don't populate RC or development selections if target has been retired. |
96 | if (ServerInfo::platformValue(ServerInfo::CurStatus).toInt() != STATUS_RETIRED) { | 96 | if (ServerInfo::instance()->platformValue(ServerInfo::CurStatus).toInt() != STATUS_RETIRED) { |
97 | m_versions.insert("development", ServerInfo::platformValue(ServerInfo::BleedingRevision).toString()); | 97 | m_versions.insert("development", ServerInfo::instance()->platformValue(ServerInfo::BleedingRevision).toString()); |
98 | m_versions.insert("rc", ServerInfo::platformValue(ServerInfo::RelCandidateVersion).toString()); | 98 | m_versions.insert("rc", ServerInfo::instance()->platformValue(ServerInfo::RelCandidateVersion).toString()); |
99 | } | 99 | } |
100 | 100 | ||
101 | ui.selectedVersion->clear(); | 101 | ui.selectedVersion->clear(); |
@@ -385,11 +385,11 @@ void SelectiveInstallWidget::installRockbox(void) | |||
385 | RbSettings::setValue(RbSettings::Build, selected); | 385 | RbSettings::setValue(RbSettings::Build, selected); |
386 | RbSettings::sync(); | 386 | RbSettings::sync(); |
387 | 387 | ||
388 | if(selected == "release") url = ServerInfo::platformValue( | 388 | if(selected == "release") url = ServerInfo::instance()->platformValue( |
389 | ServerInfo::CurReleaseUrl, m_target).toString(); | 389 | ServerInfo::CurReleaseUrl, m_target).toString(); |
390 | else if(selected == "development") url = ServerInfo::platformValue( | 390 | else if(selected == "development") url = ServerInfo::instance()->platformValue( |
391 | ServerInfo::CurDevelUrl, m_target).toString(); | 391 | ServerInfo::CurDevelUrl, m_target).toString(); |
392 | else if(selected == "rc") url = ServerInfo::platformValue( | 392 | else if(selected == "rc") url = ServerInfo::instance()->platformValue( |
393 | ServerInfo::RelCandidateUrl, m_target).toString(); | 393 | ServerInfo::RelCandidateUrl, m_target).toString(); |
394 | 394 | ||
395 | //! install build | 395 | //! install build |
diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp index 0fb2ba562e..cd5bea57b9 100644 --- a/rbutil/rbutilqt/rbutilqt.cpp +++ b/rbutil/rbutilqt/rbutilqt.cpp | |||
@@ -252,7 +252,7 @@ void RbUtilQt::downloadDone(bool error) | |||
252 | 252 | ||
253 | // read info into ServerInfo object | 253 | // read info into ServerInfo object |
254 | buildInfo.open(); | 254 | buildInfo.open(); |
255 | ServerInfo::readBuildInfo(buildInfo.fileName()); | 255 | ServerInfo::instance()->readBuildInfo(buildInfo.fileName()); |
256 | buildInfo.close(); | 256 | buildInfo.close(); |
257 | 257 | ||
258 | ui.statusbar->showMessage(tr("Download build information finished."), 5000); | 258 | ui.statusbar->showMessage(tr("Download build information finished."), 5000); |
@@ -408,7 +408,7 @@ void RbUtilQt::updateDevice() | |||
408 | QString brand = SystemInfo::platformValue(SystemInfo::Brand).toString(); | 408 | QString brand = SystemInfo::platformValue(SystemInfo::Brand).toString(); |
409 | QString name | 409 | QString name |
410 | = QString("%1 (%2)").arg(SystemInfo::platformValue(SystemInfo::Name).toString(), | 410 | = QString("%1 (%2)").arg(SystemInfo::platformValue(SystemInfo::Name).toString(), |
411 | ServerInfo::statusToString(ServerInfo::platformValue(ServerInfo::CurStatus).toInt())); | 411 | ServerInfo::instance()->statusAsString()); |
412 | ui.labelDevice->setText(QString("<b>%1 %2</b>").arg(brand, name)); | 412 | ui.labelDevice->setText(QString("<b>%1 %2</b>").arg(brand, name)); |
413 | 413 | ||
414 | QString mountpoint = RbSettings::value(RbSettings::Mountpoint).toString(); | 414 | QString mountpoint = RbSettings::value(RbSettings::Mountpoint).toString(); |
@@ -789,7 +789,7 @@ void RbUtilQt::changeEvent(QEvent *e) | |||
789 | if(e->type() == QEvent::LanguageChange) { | 789 | if(e->type() == QEvent::LanguageChange) { |
790 | ui.retranslateUi(this); | 790 | ui.retranslateUi(this); |
791 | buildInfo.open(); | 791 | buildInfo.open(); |
792 | ServerInfo::readBuildInfo(buildInfo.fileName()); | 792 | ServerInfo::instance()->readBuildInfo(buildInfo.fileName()); |
793 | buildInfo.close(); | 793 | buildInfo.close(); |
794 | updateDevice(); | 794 | updateDevice(); |
795 | } else { | 795 | } else { |
diff --git a/rbutil/rbutilqt/test/test-serverinfo.cpp b/rbutil/rbutilqt/test/test-serverinfo.cpp index bda939676c..bc6024e843 100644 --- a/rbutil/rbutilqt/test/test-serverinfo.cpp +++ b/rbutil/rbutilqt/test/test-serverinfo.cpp | |||
@@ -110,11 +110,11 @@ void TestServerInfo::testMain() | |||
110 | tf.write(testinfo); | 110 | tf.write(testinfo); |
111 | tf.close(); | 111 | tf.close(); |
112 | 112 | ||
113 | ServerInfo::readBuildInfo(filename); | 113 | ServerInfo::instance()->readBuildInfo(filename); |
114 | 114 | ||
115 | unsigned int i; | 115 | unsigned int i; |
116 | for(i = 0; i < sizeof(testdata) / sizeof(struct testvector); i++) { | 116 | for(i = 0; i < sizeof(testdata) / sizeof(struct testvector); i++) { |
117 | QString result = ServerInfo::platformValue(testdata[i].entry, testdata[i].target).toString(); | 117 | QString result = ServerInfo::instance()->platformValue(testdata[i].entry, testdata[i].target).toString(); |
118 | QCOMPARE(result, QString(testdata[i].expected)); | 118 | QCOMPARE(result, QString(testdata[i].expected)); |
119 | } | 119 | } |
120 | } | 120 | } |