| 154 | } |
| 155 | |
| 156 | void VersionList::setVersions(const QVector<VersionPtr> &versions) |
| 157 | { |
| 158 | beginResetModel(); |
| 159 | m_versions = versions; |
| 160 | std::sort(m_versions.begin(), m_versions.end(), [](const VersionPtr &a, const VersionPtr &b) |
| 161 | { |
| 162 | return a->rawTime() > b->rawTime(); |
| 163 | }); |
| 164 | for (int i = 0; i < m_versions.size(); ++i) |
| 165 | { |
| 166 | m_lookup.insert(m_versions.at(i)->version(), m_versions.at(i)); |
| 167 | setupAddedVersion(i, m_versions.at(i)); |
| 168 | } |
| 169 | |
| 170 | // FIXME: this is dumb, we have 'recommended' as part of the metadata already... |
| 171 | auto recommendedIt = std::find_if(m_versions.constBegin(), m_versions.constEnd(), [](const VersionPtr &ptr) { return ptr->type() == "release"; }); |
| 172 | m_recommended = recommendedIt == m_versions.constEnd() ? nullptr : *recommendedIt; |
| 173 | endResetModel(); |
| 174 | } |
| 175 | |
| 176 | void VersionList::parse(const QJsonObject& obj) |
| 177 | { |