| 268 | } |
| 269 | |
| 270 | static QString prefixedVersion(const QString& version) |
| 271 | { |
| 272 | const QString trimmed = version.trimmed(); |
| 273 | if (trimmed.isEmpty()) { |
| 274 | return QStringLiteral("—"); |
| 275 | } |
| 276 | if (trimmed.startsWith(QLatin1Char('v'), Qt::CaseInsensitive)) { |
| 277 | return trimmed; |
| 278 | } |
| 279 | return QStringLiteral("v%1").arg(trimmed); |
| 280 | } |
| 281 | |
| 282 | static QString radioOptionsText(const RadioModel* model) |
| 283 | { |