diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2020-11-21 19:51:09 +0100 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2020-11-22 14:43:01 +0100 |
commit | 0d2257d1f79e6c863e77dd93d8abae7d627062ad (patch) | |
tree | 811c1aabaf47bcd1efa85343709f568bbc502136 /rbutil/rbutilqt | |
parent | c2dacf6736dfcde92a4ed947f06fd85c6b2087d4 (diff) | |
download | rockbox-0d2257d1f79e6c863e77dd93d8abae7d627062ad.tar.gz rockbox-0d2257d1f79e6c863e77dd93d8abae7d627062ad.zip |
rbutil: Replace stringly types build type handling with enum.
Avoid having to repeat the same strings for lookup again and again and
use an enum instead, which is also less error prone.
Change-Id: I6ee8393948dbce97cb53850a6d8bdc4de12b4167
Diffstat (limited to 'rbutil/rbutilqt')
-rw-r--r-- | rbutil/rbutilqt/gui/selectiveinstallwidget.cpp | 78 | ||||
-rw-r--r-- | rbutil/rbutilqt/gui/selectiveinstallwidget.h | 5 |
2 files changed, 46 insertions, 37 deletions
diff --git a/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp b/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp index 8a83c6ebc5..4dc6b37eab 100644 --- a/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp +++ b/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp @@ -63,23 +63,29 @@ SelectiveInstallWidget::SelectiveInstallWidget(QWidget* parent) : QWidget(parent void SelectiveInstallWidget::selectedVersionChanged(int index) { - m_buildtype = ui.selectedVersion->itemData(index).toString(); + m_buildtype = static_cast<SystemInfo::BuildType>(ui.selectedVersion->itemData(index).toInt()); bool voice = true; - if(m_buildtype == "release") { + switch(m_buildtype) { + case SystemInfo::BuildRelease: ui.selectedDescription->setText(tr("This is the latest stable " "release available.")); voice = true; - } - if(m_buildtype == "development") { + break; + case SystemInfo::BuildCurrent: ui.selectedDescription->setText(tr("The development version is " "updated on every code change. Last update was on %1").arg( ServerInfo::instance()->platformValue(ServerInfo::BleedingDate).toString())); voice = false; - } - if(m_buildtype == "rc") { + break; + case SystemInfo::BuildCandidate: ui.selectedDescription->setText(tr("This will eventually become the " "next Rockbox version. Install it to help testing.")); voice = false; + break; + case SystemInfo::BuildDaily: + ui.selectedDescription->setText(tr("Daily updated development version.")); + voice = true; + break; } ui.voiceCheckbox->setEnabled(voice); ui.voiceCombobox->setEnabled(voice); @@ -102,25 +108,28 @@ void SelectiveInstallWidget::updateVersion(void) // re-populate all version items m_versions.clear(); - m_versions.insert("release", ServerInfo::instance()->platformValue(ServerInfo::CurReleaseVersion).toString()); + m_versions.insert(SystemInfo::BuildRelease, ServerInfo::instance()->platformValue( + ServerInfo::CurReleaseVersion).toString()); // Don't populate RC or development selections if target has been retired. if (ServerInfo::instance()->platformValue(ServerInfo::CurStatus).toInt() != STATUS_RETIRED) { - m_versions.insert("development", ServerInfo::instance()->platformValue(ServerInfo::BleedingRevision).toString()); - m_versions.insert("rc", ServerInfo::instance()->platformValue(ServerInfo::RelCandidateVersion).toString()); + m_versions.insert(SystemInfo::BuildCurrent, ServerInfo::instance()->platformValue( + ServerInfo::BleedingRevision).toString()); + m_versions.insert(SystemInfo::BuildCandidate, ServerInfo::instance()->platformValue( + ServerInfo::RelCandidateVersion).toString()); } ui.selectedVersion->clear(); - if(!m_versions["release"].isEmpty()) { + if(!m_versions[SystemInfo::BuildRelease].isEmpty()) { ui.selectedVersion->addItem(tr("Stable Release (Version %1)").arg( - m_versions["release"]), "release"); + m_versions[SystemInfo::BuildRelease]), SystemInfo::BuildRelease); } - if(!m_versions["development"].isEmpty()) { + if(!m_versions[SystemInfo::BuildCurrent].isEmpty()) { ui.selectedVersion->addItem(tr("Development Version (Revison %1)").arg( - m_versions["development"]), "development"); + m_versions[SystemInfo::BuildCurrent]), SystemInfo::BuildCurrent); } - if(!m_versions["rc"].isEmpty()) { + if(!m_versions[SystemInfo::BuildCandidate].isEmpty()) { ui.selectedVersion->addItem(tr("Release Candidate (Revison %1)").arg( - m_versions["rc"]), "rc"); + m_versions[SystemInfo::BuildCandidate]), SystemInfo::BuildCandidate); } // select previously selected version @@ -128,7 +137,7 @@ void SelectiveInstallWidget::updateVersion(void) if(index != -1) { ui.selectedVersion->setCurrentIndex(index); } - else if(!m_versions["release"].isEmpty()) { + else if(!m_versions[SystemInfo::BuildRelease].isEmpty()) { index = ui.selectedVersion->findData("release"); ui.selectedVersion->setCurrentIndex(index); } @@ -418,13 +427,20 @@ void SelectiveInstallWidget::installRockbox(void) RbSettings::setValue(RbSettings::Build, m_buildtype); RbSettings::sync(); - if(m_buildtype == "release") url = ServerInfo::instance()->platformValue( - ServerInfo::CurReleaseUrl, m_target).toString(); - else if(m_buildtype == "development") url = ServerInfo::instance()->platformValue( - ServerInfo::CurDevelUrl, m_target).toString(); - else if(m_buildtype == "rc") url = ServerInfo::instance()->platformValue( - ServerInfo::RelCandidateUrl, m_target).toString(); - + switch(m_buildtype) { + case SystemInfo::BuildRelease: + url = ServerInfo::instance()->platformValue( + ServerInfo::CurReleaseUrl, m_target).toString(); + break; + case SystemInfo::BuildCurrent: + url = ServerInfo::instance()->platformValue( + ServerInfo::CurDevelUrl, m_target).toString(); + break; + case SystemInfo::BuildCandidate: + url = ServerInfo::instance()->platformValue( + ServerInfo::RelCandidateUrl, m_target).toString(); + break; + } //! install build if(m_zipinstaller != nullptr) m_zipinstaller->deleteLater(); m_zipinstaller = new ZipInstaller(this); @@ -459,14 +475,11 @@ void SelectiveInstallWidget::installFonts(void) QString fontsurl; QString logversion; QString relversion = installInfo.release(); - if(relversion.isEmpty()) { + if(!relversion.isEmpty()) { // release is empty for non-release versions (i.e. daily / current) - fontsurl = SystemInfo::value(SystemInfo::FontUrl, SystemInfo::BuildDaily).toString(); - } - else { - fontsurl = SystemInfo::value(SystemInfo::FontUrl, SystemInfo::BuildRelease).toString(); logversion = installInfo.release(); } + fontsurl = SystemInfo::value(SystemInfo::FontUrl, m_buildtype).toString(); fontsurl.replace("%RELEASEVER%", relversion); // create new zip installer @@ -501,20 +514,15 @@ void SelectiveInstallWidget::installVoicefile(void) QString voiceurl; QString logversion; QString relversion = installInfo.release(); - if(m_buildtype == "release") { + if(m_buildtype != SystemInfo::BuildRelease) { // release is empty for non-release versions (i.e. daily / current) - voiceurl = SystemInfo::value(SystemInfo::VoiceUrl, SystemInfo::BuildRelease).toString(); - } - else { - voiceurl = SystemInfo::value(SystemInfo::VoiceUrl, SystemInfo::BuildDaily).toString(); logversion = installInfo.release(); } + voiceurl = SystemInfo::value(SystemInfo::VoiceUrl, m_buildtype).toString(); voiceurl.replace("%RELVERSION%", m_versions[m_buildtype]); voiceurl.replace("%MODEL%", m_target); voiceurl.replace("%LANGUAGE%", lang); - LOG_INFO() << "voicurl" << voiceurl; - // create new zip installer if(m_zipinstaller != nullptr) m_zipinstaller->deleteLater(); m_zipinstaller = new ZipInstaller(this); diff --git a/rbutil/rbutilqt/gui/selectiveinstallwidget.h b/rbutil/rbutilqt/gui/selectiveinstallwidget.h index ac07e24ab8..38cce78a46 100644 --- a/rbutil/rbutilqt/gui/selectiveinstallwidget.h +++ b/rbutil/rbutilqt/gui/selectiveinstallwidget.h @@ -24,6 +24,7 @@ #include "progressloggergui.h" #include "zipinstaller.h" #include "themesinstallwindow.h" +#include "systeminfo.h" class SelectiveInstallWidget : public QWidget { @@ -61,9 +62,9 @@ class SelectiveInstallWidget : public QWidget ProgressLoggerGui *m_logger; int m_installStage; ZipInstaller *m_zipinstaller; - QMap<QString, QString> m_versions; + QMap<SystemInfo::BuildType, QString> m_versions; ThemesInstallWindow *m_themesinstaller; - QString m_buildtype; + SystemInfo::BuildType m_buildtype; }; #endif |