From 07000281daf7777293d5236361b7e9a322482ad7 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Thu, 12 Sep 2024 15:54:53 +0200 Subject: [PATCH] ExtensionManager: Support "updated_at" Change-Id: Ib7362500aba9751cfd85fa93e372e81172ec5112 Reviewed-by: Marcus Tillmanns --- src/plugins/extensionmanager/extensionmanagerwidget.cpp | 8 ++++++++ src/plugins/extensionmanager/extensionsbrowser.cpp | 1 + src/plugins/extensionmanager/extensionsmodel.cpp | 4 ++++ src/plugins/extensionmanager/extensionsmodel.h | 1 + 4 files changed, 14 insertions(+) diff --git a/src/plugins/extensionmanager/extensionmanagerwidget.cpp b/src/plugins/extensionmanager/extensionmanagerwidget.cpp index fbfa59098db..eb7a373c505 100644 --- a/src/plugins/extensionmanager/extensionmanagerwidget.cpp +++ b/src/plugins/extensionmanager/extensionmanagerwidget.cpp @@ -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 ¤t) 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(); diff --git a/src/plugins/extensionmanager/extensionsbrowser.cpp b/src/plugins/extensionmanager/extensionsbrowser.cpp index 3bcf0b22b2e..3db42bfc5c9 100644 --- a/src/plugins/extensionmanager/extensionsbrowser.cpp +++ b/src/plugins/extensionmanager/extensionsbrowser.cpp @@ -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; } diff --git a/src/plugins/extensionmanager/extensionsmodel.cpp b/src/plugins/extensionmanager/extensionsmodel.cpp index 9415ee02978..366d19e694d 100644 --- a/src/plugins/extensionmanager/extensionsmodel.cpp +++ b/src/plugins/extensionmanager/extensionsmodel.cpp @@ -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: diff --git a/src/plugins/extensionmanager/extensionsmodel.h b/src/plugins/extensionmanager/extensionsmodel.h index e8f47828ad0..eb3d289630c 100644 --- a/src/plugins/extensionmanager/extensionsmodel.h +++ b/src/plugins/extensionmanager/extensionsmodel.h @@ -39,6 +39,7 @@ enum Role { RoleLicense, RolePlatforms, RolePlugins, + RoleDateUpdated, RoleSearchText, RoleTags, RoleVendor,