Git commit 1ef4447b9e829bb0dc686ca70a453edd71e6859b by Aleix Pol. Committed on 07/08/2018 at 15:39. Pushed by apol into branch 'master'. Share appstream screenshots code extraction between flatpak and packagekit M +18 -0 libdiscover/appstream/AppStreamUtils.h M +2 -13 libdiscover/backends/FlatpakBackend/FlatpakResource.cpp M +2 -13 libdiscover/backends/PackageKitBackend/AppPackageKitResource= .cpp https://commits.kde.org/discover/1ef4447b9e829bb0dc686ca70a453edd71e6859b diff --git a/libdiscover/appstream/AppStreamUtils.h b/libdiscover/appstream= /AppStreamUtils.h index 9dd8c152..78de3c2f 100644 --- a/libdiscover/appstream/AppStreamUtils.h +++ b/libdiscover/appstream/AppStreamUtils.h @@ -23,9 +23,11 @@ = #include #include +#include #include #include #include +#include = namespace AppStreamUtils { @@ -55,6 +57,22 @@ static QString changelogToHtml(const AppStream::Componen= t &appdata) return changelog; } = +static QPair, QList> fetchScreenshots(const AppStream::C= omponent &appdata) +{ + QList screenshots, thumbnails; + Q_FOREACH (const AppStream::Screenshot &s, appdata.screenshots()) { + const auto images =3D s.images(); + const QUrl thumbnail =3D AppStreamUtils::imageOfKind(images, AppSt= ream::Image::KindThumbnail); + const QUrl plain =3D AppStreamUtils::imageOfKind(images, AppStream= ::Image::KindSource); + if (plain.isEmpty()) + qWarning() << "invalid screenshot for" << appdata.name(); + + screenshots << plain; + thumbnails << (thumbnail.isEmpty() ? plain : thumbnail); + } + return {screenshots, thumbnails}; +} + } = #endif diff --git a/libdiscover/backends/FlatpakBackend/FlatpakResource.cpp b/libd= iscover/backends/FlatpakBackend/FlatpakResource.cpp index f98793ae..86a69d54 100644 --- a/libdiscover/backends/FlatpakBackend/FlatpakResource.cpp +++ b/libdiscover/backends/FlatpakBackend/FlatpakResource.cpp @@ -414,19 +414,8 @@ void FlatpakResource::fetchChangelog() = void FlatpakResource::fetchScreenshots() { - QList thumbnails, screenshots; - - Q_FOREACH (const AppStream::Screenshot &s, m_appdata.screenshots()) { - const QUrl thumbnail =3D AppStreamUtils::imageOfKind(s.images(), A= ppStream::Image::KindThumbnail); - const QUrl plain =3D AppStreamUtils::imageOfKind(s.images(), AppSt= ream::Image::KindSource); - if (plain.isEmpty()) - qWarning() << "invalid screenshot for" << name(); - - screenshots << plain; - thumbnails << (thumbnail.isEmpty() ? plain : thumbnail); - } - - Q_EMIT screenshotsFetched(thumbnails, screenshots); + const auto sc =3D AppStreamUtils::fetchScreenshots(m_appdata); + Q_EMIT screenshotsFetched(sc.first, sc.second); } = void FlatpakResource::setArch(const QString &arch) diff --git a/libdiscover/backends/PackageKitBackend/AppPackageKitResource.c= pp b/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp index 47715ad3..5fc50c62 100644 --- a/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp +++ b/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp @@ -162,19 +162,8 @@ bool AppPackageKitResource::isTechnical() const = void AppPackageKitResource::fetchScreenshots() { - QList thumbnails, screenshots; - - Q_FOREACH (const AppStream::Screenshot &s, m_appdata.screenshots()) { - const QUrl thumbnail =3D AppStreamUtils::imageOfKind(s.images(), A= ppStream::Image::KindThumbnail); - const QUrl plain =3D AppStreamUtils::imageOfKind(s.images(), AppSt= ream::Image::KindSource); - if (plain.isEmpty()) - qWarning() << "invalid screenshot for" << name(); - - screenshots << plain; - thumbnails << (thumbnail.isEmpty() ? plain : thumbnail); - } - - Q_EMIT screenshotsFetched(thumbnails, screenshots); + const auto sc =3D AppStreamUtils::fetchScreenshots(m_appdata); + Q_EMIT screenshotsFetched(sc.first, sc.second); } = QStringList AppPackageKitResource::allPackageNames() const