summaryrefslogtreecommitdiff
path: root/utils/rbutilqt/base/playerbuildinfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/rbutilqt/base/playerbuildinfo.cpp')
-rw-r--r--utils/rbutilqt/base/playerbuildinfo.cpp38
1 files changed, 22 insertions, 16 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