[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [discover] libdiscover: Share appstream screenshots code extraction between flatpak and packagekit
From:       Aleix Pol <null () kde ! org>
Date:       2018-08-07 15:40:32
Message-ID: E1fn464-0007R0-QK () code ! kde ! org
[Download RAW message or body]

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 <QUrl>
 #include <QList>
+#include <QDebug>
 #include <AppStreamQt/image.h>
 #include <AppStreamQt/component.h>
 #include <AppStreamQt/release.h>
+#include <AppStreamQt/screenshot.h>
 
 namespace AppStreamUtils
 {
@@ -55,6 +57,22 @@ static QString changelogToHtml(const AppStream::Component \
&appdata)  return changelog;
 }
 
+static QPair<QList<QUrl>, QList<QUrl>> fetchScreenshots(const AppStream::Component \
&appdata) +{
+    QList<QUrl> screenshots, thumbnails;
+    Q_FOREACH (const AppStream::Screenshot &s, appdata.screenshots()) {
+        const auto images = s.images();
+        const QUrl thumbnail = AppStreamUtils::imageOfKind(images, \
AppStream::Image::KindThumbnail); +        const QUrl plain = \
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/libdiscover/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<QUrl> thumbnails, screenshots;
-
-    Q_FOREACH (const AppStream::Screenshot &s, m_appdata.screenshots()) {
-        const QUrl thumbnail = AppStreamUtils::imageOfKind(s.images(), \
                AppStream::Image::KindThumbnail);
-        const QUrl plain = AppStreamUtils::imageOfKind(s.images(), \
                AppStream::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 = AppStreamUtils::fetchScreenshots(m_appdata);
+    Q_EMIT screenshotsFetched(sc.first, sc.second);
 }
 
 void FlatpakResource::setArch(const QString &arch)
diff --git a/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp \
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<QUrl> thumbnails, screenshots;
-
-    Q_FOREACH (const AppStream::Screenshot &s, m_appdata.screenshots()) {
-        const QUrl thumbnail = AppStreamUtils::imageOfKind(s.images(), \
                AppStream::Image::KindThumbnail);
-        const QUrl plain = AppStreamUtils::imageOfKind(s.images(), \
                AppStream::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 = AppStreamUtils::fetchScreenshots(m_appdata);
+    Q_EMIT screenshotsFetched(sc.first, sc.second);
 }
 
 QStringList AppPackageKitResource::allPackageNames() const


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic