Skip to content

Commit

Permalink
fix(registry): treat docset revision as integer
Browse files Browse the repository at this point in the history
Fixes #1532.
  • Loading branch information
trollixx committed Sep 8, 2023
1 parent 2024915 commit 5cdad0e
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 10 deletions.
4 changes: 2 additions & 2 deletions src/libs/registry/docset.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ QString Docset::version() const
return m_version;
}

QString Docset::revision() const
int Docset::revision() const
{
return m_revision;
}
Expand Down Expand Up @@ -401,7 +401,7 @@ void Docset::loadMetadata()
m_name = jsonObject[QStringLiteral("name")].toString();
m_title = jsonObject[QStringLiteral("title")].toString();
m_version = jsonObject[QStringLiteral("version")].toString();
m_revision = jsonObject[QStringLiteral("revision")].toString();
m_revision = jsonObject[QStringLiteral("revision")].toString().toInt();

if (jsonObject.contains(QStringLiteral("feed_url"))) {
m_feedUrl = jsonObject[QStringLiteral("feed_url")].toString();
Expand Down
4 changes: 2 additions & 2 deletions src/libs/registry/docset.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ class Docset final
QStringList keywords() const;

QString version() const;
QString revision() const;
int revision() const;
QString feedUrl() const;

QString path() const;
Expand Down Expand Up @@ -107,7 +107,7 @@ class Docset final
QString m_title;
QStringList m_keywords;
QString m_version;
QString m_revision;
int m_revision;
QString m_feedUrl;
Docset::Type m_type = Type::Invalid;
QString m_path;
Expand Down
8 changes: 5 additions & 3 deletions src/libs/registry/docsetmetadata.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,9 @@ DocsetMetadata::DocsetMetadata(const QJsonObject &jsonObject)
m_versions << vv.toString();
}

m_revision = jsonObject[QStringLiteral("revision")].toString();
// Unfortunately, API returns revision as a string, so it needs to be converted to integer
// for comparison to work properly.
m_revision = jsonObject[QStringLiteral("revision")].toString().toInt();

m_feedUrl = QUrl(jsonObject[QStringLiteral("feed_url")].toString());

Expand Down Expand Up @@ -87,7 +89,7 @@ void DocsetMetadata::save(const QString &path, const QString &version)
if (!version.isEmpty())
jsonObject[QStringLiteral("version")] = version;

if (version == latestVersion() && !m_revision.isEmpty())
if (version == latestVersion() && m_revision == 0)
jsonObject[QStringLiteral("revision")] = m_revision;

if (!m_feedUrl.isEmpty())
Expand Down Expand Up @@ -155,7 +157,7 @@ QString DocsetMetadata::latestVersion() const
return m_versions.isEmpty() ? QString() : m_versions.first();
}

QString DocsetMetadata::revision() const
int DocsetMetadata::revision() const
{
return m_revision;
}
Expand Down
4 changes: 2 additions & 2 deletions src/libs/registry/docsetmetadata.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class DocsetMetadata
QStringList aliases() const;
QStringList versions() const;
QString latestVersion() const;
QString revision() const;
int revision() const;
QIcon icon() const;

QUrl feedUrl() const;
Expand All @@ -59,7 +59,7 @@ class DocsetMetadata
QString m_title;
QStringList m_aliases;
QStringList m_versions;
QString m_revision;
int m_revision;

QByteArray m_rawIcon;
QByteArray m_rawIcon2x;
Expand Down
2 changes: 1 addition & 1 deletion src/libs/registry/listmodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ QVariant ListModel::data(const QModelIndex &index, int role) const
switch (indexLevel(index)) {
case Level::DocsetLevel: {
const auto docset = itemInRow(index.row())->docset;
return tr("Version: %1r%2").arg(docset->version(), docset->revision());
return tr("Version: %1r%2").arg(docset->version()).arg(docset->revision());
}
default:
return QVariant();
Expand Down

0 comments on commit 5cdad0e

Please sign in to comment.