summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--utils/rbutilqt/base/playerbuildinfo.cpp38
-rw-r--r--utils/rbutilqt/gui/selectiveinstallwidget.cpp6
-rw-r--r--utils/rbutilqt/test/test-playerbuildinfo.cpp23
3 files changed, 48 insertions, 19 deletions
diff --git a/utils/rbutilqt/base/playerbuildinfo.cpp b/utils/rbutilqt/base/playerbuildinfo.cpp
index f118a9fd7a..aba377eafc 100644
--- a/utils/rbutilqt/base/playerbuildinfo.cpp
+++ b/utils/rbutilqt/base/playerbuildinfo.cpp
@@ -113,40 +113,46 @@ QVariant PlayerBuildInfo::value(BuildInfo item, BuildType type)
113 // For build info we don't use that. 113 // For build info we don't use that.
114 QString target = RbSettings::value(RbSettings::CurrentPlatform).toString().split('.').at(0); 114 QString target = RbSettings::value(RbSettings::CurrentPlatform).toString().split('.').at(0);
115 115
116 QString s = ServerInfoList[i].name; 116 QString serverinfo = ServerInfoList[i].name;
117 s.replace(":target:", target); 117 serverinfo.replace(":target:", target);
118 QString v; 118 QString buildtypename;
119 switch(type) { 119 switch(type) {
120 case TypeRelease: 120 case TypeRelease:
121 v = "release"; 121 buildtypename = "release";
122 break; 122 break;
123 case TypeCandidate: 123 case TypeCandidate:
124 v = "release-candidate"; 124 buildtypename = "release-candidate";
125 break; 125 break;
126 case TypeDaily: 126 case TypeDaily:
127 v = "daily"; 127 buildtypename = "daily";
128 break; 128 break;
129 case TypeDevel: 129 case TypeDevel:
130 v = "development"; 130 buildtypename = "development";
131 // manual and fonts don't exist for development builds. We do have an
132 // URL configured, but need to get the daily version instead.
133 if(item == BuildManualUrl || item == BuildFontUrl) {
134 LOG_INFO() << "falling back to daily build for this info value";
135 buildtypename = "daily";
136 }
131 break; 137 break;
132 } 138 }
133 139
134 QVariant result = QString(); 140 QVariant result = QString();
135 if (!serverInfo) 141 if (!serverInfo)
136 return result; 142 return result;
137 QStringList version = serverInfo->value(v + "/" + target, "").toStringList(); 143 QStringList version = serverInfo->value(buildtypename + "/" + target, "").toStringList();
138 s.replace(":build:", v); 144 serverinfo.replace(":build:", buildtypename);
139 s.replace(":version:", version.at(0)); 145 serverinfo.replace(":version:", version.at(0));
140 146
141 // get value from server build-info 147 // get value from server build-info
142 // we need to get a version string, otherwise the data is invalid. 148 // we need to get a version string, otherwise the data is invalid.
143 // For invalid data return an empty string. 149 // For invalid data return an empty string.
144 if(version.at(0).isEmpty()) { 150 if(version.at(0).isEmpty()) {
145 LOG_INFO() << s << "(version invalid)"; 151 LOG_INFO() << serverinfo << "(version invalid)";
146 return result; 152 return result;
147 } 153 }
148 if(!s.isEmpty()) 154 if(!serverinfo.isEmpty())
149 result = serverInfo->value(s); 155 result = serverInfo->value(serverinfo);
150 156
151 // depending on the actual value we need more replacements. 157 // depending on the actual value we need more replacements.
152 switch(item) { 158 switch(item) {
@@ -163,8 +169,8 @@ QVariant PlayerBuildInfo::value(BuildInfo item, BuildType type)
163 169
164 case BuildVoiceLangs: 170 case BuildVoiceLangs:
165 if (type == TypeDaily) 171 if (type == TypeDaily)
166 s = "voices/daily"; 172 serverinfo = "voices/daily";
167 result = serverInfo->value(s); 173 result = serverInfo->value(serverinfo);
168 break; 174 break;
169 175
170 case BuildManualUrl: 176 case BuildManualUrl:
@@ -188,7 +194,7 @@ QVariant PlayerBuildInfo::value(BuildInfo item, BuildType type)
188 .replace("%TARGET%", target) 194 .replace("%TARGET%", target)
189 .replace("%VERSION%", version.at(0)); 195 .replace("%VERSION%", version.at(0));
190 196
191 LOG_INFO() << "B:" << s << result; 197 LOG_INFO() << "B:" << serverinfo << result;
192 return result; 198 return result;
193} 199}
194 200
diff --git a/utils/rbutilqt/gui/selectiveinstallwidget.cpp b/utils/rbutilqt/gui/selectiveinstallwidget.cpp
index b65f180521..4417a52a29 100644
--- a/utils/rbutilqt/gui/selectiveinstallwidget.cpp
+++ b/utils/rbutilqt/gui/selectiveinstallwidget.cpp
@@ -97,6 +97,12 @@ void SelectiveInstallWidget::selectedVersionChanged(int index)
97 ui.voiceCombobox->setEnabled(voice); 97 ui.voiceCombobox->setEnabled(voice);
98 ui.voiceLabel->setEnabled(voice); 98 ui.voiceLabel->setEnabled(voice);
99 ui.voiceCheckbox->setToolTip(voice ? "" : tr("Not available for the selected version")); 99 ui.voiceCheckbox->setToolTip(voice ? "" : tr("Not available for the selected version"));
100 QString fontsurl = PlayerBuildInfo::instance()->value(
101 PlayerBuildInfo::BuildFontUrl, m_buildtype).toString();
102 ui.fontsCheckbox->setEnabled(!fontsurl.isEmpty());
103 QString manualurl = PlayerBuildInfo::instance()->value(
104 PlayerBuildInfo::BuildManualUrl, m_buildtype).toString();
105 ui.manualCheckbox->setEnabled(!manualurl.isEmpty());
100 106
101 updateVoiceLangs(); 107 updateVoiceLangs();
102} 108}
diff --git a/utils/rbutilqt/test/test-playerbuildinfo.cpp b/utils/rbutilqt/test/test-playerbuildinfo.cpp
index 4dd5773576..de81b36a30 100644
--- a/utils/rbutilqt/test/test-playerbuildinfo.cpp
+++ b/utils/rbutilqt/test/test-playerbuildinfo.cpp
@@ -47,30 +47,42 @@ const char* testinfo =
47 "iriverh100 = 3.11.2, http://dl.rockbox.org/release/3.11.2/rockbox-iriverh100-3.11.2.zip\n" 47 "iriverh100 = 3.11.2, http://dl.rockbox.org/release/3.11.2/rockbox-iriverh100-3.11.2.zip\n"
48 "iriverh120 = 3.3\n" 48 "iriverh120 = 3.3\n"
49 "iriverh300 = \n" 49 "iriverh300 = \n"
50 "\n"
50 "[release-candidate]\n" 51 "[release-candidate]\n"
51 "build_url=https://buildurl/rc/%VERSION%/rockbox-%TARGET%-%VERSION%.zip\n" 52 "build_url=https://buildurl/rc/%VERSION%/rockbox-%TARGET%-%VERSION%.zip\n"
52 "gigabeatfx=f9dce96,http://dl.rockbox.org/rc/f9dce96/rockbox-gigabeatfx.zip\n" 53 "gigabeatfx=f9dce96,http://dl.rockbox.org/rc/f9dce96/rockbox-gigabeatfx.zip\n"
53 "archosfmrecorder=f9dce96\n" 54 "archosfmrecorder=f9dce96\n"
54 "archosrecorder = f9dce96\n" 55 "archosrecorder = f9dce96\n"
55 "iaudiox5=f9dce96,http://dl.rockbox.org/rc/f9dce96/rockbox-iaudiox5.zip\n" 56 "iaudiox5=f9dce96,http://dl.rockbox.org/rc/f9dce96/rockbox-iaudiox5.zip\n"
57 "\n"
56 "[development]\n" 58 "[development]\n"
57 "build_url=https://buildurl/dev/rockbox-%TARGET%.zip\n" 59 "build_url=https://buildurl/dev/rockbox-%TARGET%.zip\n"
60 "font_url=https://buildurl/daily/fonts/rockbox-fonts-%VERSION%.zip\n"
61 "manual_url=https://buildurl/daily/manual/rockbox-%TARGET%-%VERSION%%FORMAT%\n"
58 "iriverh100 = be1be79\n" 62 "iriverh100 = be1be79\n"
59 "iaudiox5 = be1be76\n" 63 "iaudiox5 = be1be76\n"
64 "\n"
60 "[dailies]\n" 65 "[dailies]\n"
61 "timestamp = 20201113\n" 66 "timestamp = 20201113\n"
62 "rev = 362f7a3\n" 67 "rev = 362f7a3\n"
68 "\n"
63 "[daily]\n" 69 "[daily]\n"
64 "build_url=https://buildurl/daily/rockbox-%TARGET%-%VERSION%.zip\n" 70 "build_url=https://buildurl/daily/rockbox-%TARGET%-%VERSION%.zip\n"
65 "iriverh100 = f9dce00\n" 71 "font_url=https://buildurl/daily/fonts/rockbox-fonts-%VERSION%.zip\n"
72 "manual_url=https://buildurl/daily/manual/rockbox-%TARGET%-%VERSION%%FORMAT%\n"
73 "iriverh100 = 20201114\n"
74 "iriverh120 = 20201115\n"
75 "\n"
66 "[bleeding]\n" 76 "[bleeding]\n"
67 "timestamp = 20201114T105723Z\n" 77 "timestamp = 20201114T105723Z\n"
68 "rev = be1be79\n" 78 "rev = be1be79\n"
79 "\n"
69 "[status]\n" 80 "[status]\n"
70 "archosfmrecorder=3\n" 81 "archosfmrecorder=3\n"
71 "iriverh100=2\n" 82 "iriverh100=2\n"
72 "iriverh300=1\n" 83 "iriverh300=1\n"
73 "iriverh10=0\n" 84 "iriverh10=0\n"
85 "\n"
74 "[voices]\n" 86 "[voices]\n"
75 "3.15=english,francais\n" 87 "3.15=english,francais\n"
76 "3.11.2=english\n" 88 "3.11.2=english\n"
@@ -124,11 +136,16 @@ struct {
124 { "iriverh100", PlayerBuildInfo::BuildUrl, PlayerBuildInfo::TypeDevel, "https://buildurl/dev/rockbox-iriverh100.zip" }, 136 { "iriverh100", PlayerBuildInfo::BuildUrl, PlayerBuildInfo::TypeDevel, "https://buildurl/dev/rockbox-iriverh100.zip" },
125 { "iaudiox5.v", PlayerBuildInfo::BuildVersion, PlayerBuildInfo::TypeDevel, "be1be76" }, 137 { "iaudiox5.v", PlayerBuildInfo::BuildVersion, PlayerBuildInfo::TypeDevel, "be1be76" },
126 { "iaudiox5.v", PlayerBuildInfo::BuildUrl, PlayerBuildInfo::TypeDevel, "https://buildurl/dev/rockbox-iaudiox5.zip" }, 138 { "iaudiox5.v", PlayerBuildInfo::BuildUrl, PlayerBuildInfo::TypeDevel, "https://buildurl/dev/rockbox-iaudiox5.zip" },
139 // devel builds use daily fonts.
140 { "iriverh100", PlayerBuildInfo::BuildFontUrl, PlayerBuildInfo::TypeDevel, "https://buildurl/daily/fonts/rockbox-fonts-20201114.zip" },
141 { "iriverh100", PlayerBuildInfo::BuildManualUrl, PlayerBuildInfo::TypeDevel, "https://buildurl/daily/manual/rockbox-iriverh100-20201114%FORMAT%" },
127 142
128 // daily builds 143 // daily builds
129 { "iriverh100", PlayerBuildInfo::BuildVoiceLangs, PlayerBuildInfo::TypeDaily, "deutsch,english,francais" }, 144 { "iriverh100", PlayerBuildInfo::BuildVoiceLangs, PlayerBuildInfo::TypeDaily, "deutsch,english,francais" },
130 { "iriverh100", PlayerBuildInfo::BuildVersion, PlayerBuildInfo::TypeDaily, "f9dce00" }, 145 { "iriverh100", PlayerBuildInfo::BuildVersion, PlayerBuildInfo::TypeDaily, "20201114" },
131 { "iriverh100", PlayerBuildInfo::BuildUrl, PlayerBuildInfo::TypeDaily, "https://buildurl/daily/rockbox-iriverh100-f9dce00.zip" }, 146 { "iriverh100", PlayerBuildInfo::BuildUrl, PlayerBuildInfo::TypeDaily, "https://buildurl/daily/rockbox-iriverh100-20201114.zip" },
147 { "iriverh100", PlayerBuildInfo::BuildFontUrl, PlayerBuildInfo::TypeDaily, "https://buildurl/daily/fonts/rockbox-fonts-20201114.zip" },
148 { "iriverh120", PlayerBuildInfo::BuildManualUrl, PlayerBuildInfo::TypeDaily, "https://buildurl/daily/manual/rockbox-iriverh100-20201115%FORMAT%" },
132}; 149};
133 150
134struct { 151struct {