| 170 | } |
| 171 | |
| 172 | void VersionList::setVersions(const QVector<Version::Ptr>& versions) |
| 173 | { |
| 174 | beginResetModel(); |
| 175 | m_versions = versions; |
| 176 | std::sort(m_versions.begin(), m_versions.end(), |
| 177 | [](const Version::Ptr& a, const Version::Ptr& b) { return a->rawTime() > b->rawTime(); }); |
| 178 | for (int i = 0; i < m_versions.size(); ++i) { |
| 179 | m_lookup.insert(m_versions.at(i)->version(), m_versions.at(i)); |
| 180 | setupAddedVersion(i, m_versions.at(i)); |
| 181 | } |
| 182 | |
| 183 | // FIXME: this is dumb, we have 'recommended' as part of the metadata already... |
| 184 | auto recommendedIt = |
| 185 | std::find_if(m_versions.constBegin(), m_versions.constEnd(), [](const Version::Ptr& ptr) { return ptr->type() == "release"; }); |
| 186 | m_recommended = recommendedIt == m_versions.constEnd() ? nullptr : *recommendedIt; |
| 187 | endResetModel(); |
| 188 | } |
| 189 | |
| 190 | void VersionList::parse(const QJsonObject& obj) |
| 191 | { |