ExtensionManager: Support "updated_at"

Change-Id: Ib7362500aba9751cfd85fa93e372e81172ec5112
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
Alessandro Portale
2024-09-12 15:54:53 +02:00
parent ad5303f9fa
commit 07000281da
4 changed files with 14 additions and 0 deletions

View File

@@ -393,6 +393,8 @@ private:
QWidget *m_primaryContent;
QWidget *m_secondaryContent;
QLabel *m_description;
QLabel *m_dateUpdatedTitle;
QLabel *m_dateUpdated;
QLabel *m_tagsTitle;
TagList *m_tags;
QLabel *m_platformsTitle;
@@ -429,6 +431,8 @@ ExtensionManagerWidget::ExtensionManagerWidget()
}.attachTo(primary);
m_primaryContent = toScrollableColumn(primary);
m_dateUpdatedTitle = sectionTitle(h6TF, Tr::tr("Last Update"));
m_dateUpdated = tfLabel(contentTF, false);
m_tagsTitle = sectionTitle(h6TF, Tr::tr("Tags"));
m_tags = new TagList;
m_platformsTitle = sectionTitle(h6TF, Tr::tr("Platforms"));
@@ -444,6 +448,7 @@ ExtensionManagerWidget::ExtensionManagerWidget()
Column {
sectionTitle(h6CapitalTF, Tr::tr("Extension details")),
Column {
Column { m_dateUpdatedTitle, m_dateUpdated, spXxs },
Column { m_tagsTitle, m_tags, spXxs },
Column { m_platformsTitle, m_platforms, spXxs },
Column { m_dependenciesTitle, m_dependencies, spXxs },
@@ -599,6 +604,9 @@ void ExtensionManagerWidget::updateView(const QModelIndex &current)
return pHtml;
};
const QDate dateUpdated = current.data(RoleDateUpdated).toDate();
m_dateUpdated->setText(dateUpdated.toString());
const QStringList tags = current.data(RoleTags).toStringList();
m_tags->setTags(tags);
const bool hasTags = !tags.isEmpty();

View File

@@ -394,6 +394,7 @@ public:
{Tr::tr("Name"), RoleName},
{Tr::tr("Vendor"), RoleVendor},
{Tr::tr("Popularity"), RoleDownloadCount, Qt::DescendingOrder},
{Tr::tr("Last updated"), RoleDateUpdated, Qt::DescendingOrder},
};
return options;
}

View File

@@ -153,6 +153,8 @@ QVariant ExtensionsModelPrivate::dataFromRemoteExtension(int index, int role) co
return json.value("downloads");
case RoleId:
return json.value(EXTENSION_KEY_ID);
case RoleDateUpdated:
return QDate::fromString(json.value("updated_at").toString(), Qt::ISODate);
case RoleTags:
return json.value("tags").toVariant().toStringList();
case RoleVendor:
@@ -205,6 +207,8 @@ QVariant ExtensionsModelPrivate::dataFromLocalPlugin(int index, int role) const
: QStringList(platformsPattern);
return platforms;
}
case RoleDateUpdated:
return QDate::fromString(QLatin1String(__DATE__), "MMM dd yyyy");
case RoleVendor:
return pluginSpec->vendor();
case RoleVendorId:

View File

@@ -39,6 +39,7 @@ enum Role {
RoleLicense,
RolePlatforms,
RolePlugins,
RoleDateUpdated,
RoleSearchText,
RoleTags,
RoleVendor,