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

List:       kde-commits
Subject:    [discover/Plasma/5.8] libdiscover/backends/PackageKitBackend: Make it possible for 5.8 to compile ag
From:       Aleix Pol <aleixpol () kde ! org>
Date:       2016-11-10 16:58:04
Message-ID: E1c4sfs-0007h9-Hr () code ! kde ! org
[Download RAW message or body]

Git commit c52df70071837998f535005e7d9695ca14795128 by Aleix Pol.
Committed on 04/11/2016 at 17:24.
Pushed by apol into branch 'Plasma/5.8'.

Make it possible for 5.8 to compile against the last AppStreamQt

Summary: Builds, works. Needs patch in appstream, see pull request

Reviewers: #plasma, rdieter

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D3265

M  +29   -2    libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp
M  +7    -1    libdiscover/backends/PackageKitBackend/CMakeLists.txt
M  +12   -0    libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
M  +11   -0    libdiscover/backends/PackageKitBackend/PackageKitBackend.h

http://commits.kde.org/discover/c52df70071837998f535005e7d9695ca14795128

diff --git a/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp \
b/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp index \
                658019f..3ed5bd5 100644
--- a/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp
+++ b/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp
@@ -21,6 +21,9 @@
 #include "AppPackageKitResource.h"
 #include <AppstreamQt/screenshot.h>
 #include <AppstreamQt/image.h>
+#ifdef NEWAPPSTREAM
+#include <AppStreamQt/icon.h>
+#endif
 // #include <AppstreamQt/release.h>
 #include <KLocalizedString>
 #include <KToolInvocation>
@@ -52,7 +55,23 @@ QString AppPackageKitResource::longDescription()
 QVariant AppPackageKitResource::icon() const
 {
     QIcon ret;
-
+#ifdef NEWAPPSTREAM
+    const auto icons = m_appdata.icons();
+    if (icons.isEmpty()) {
+        ret = QIcon::fromTheme(QStringLiteral("package-x-generic"));
+    } else foreach(const AppStream::Icon &icon, icons) {
+        switch(icon.kind()) {
+            case AppStream::Icon::KindLocal:
+                ret.addFile(icon.url().toLocalFile(), icon.size());
+                break;
+            case AppStream::Icon::KindCached:
+                ret.addFile(icon.url().toLocalFile(), icon.size());
+                break;
+            default:
+                break;
+        }
+    }
+#else
     const auto icons = m_appdata.iconUrls();
     if (icons.isEmpty())
         return m_appdata.name();
@@ -66,7 +85,7 @@ QVariant AppPackageKitResource::icon() const
     if (ret.isNull()) {
         ret = QIcon::fromTheme(QStringLiteral("package-x-generic"));
     }
-
+#endif
     return ret;
 }
 
@@ -105,7 +124,11 @@ QString AppPackageKitResource::appstreamId() const
 
 QUrl AppPackageKitResource::homepage()
 {
+#ifdef NEWAPPSTREAM
+    return m_appdata.url(Appstream::Component::UrlKindHomepage);
+#else
     return m_appdata.urls().value(Appstream::Component::UrlKindHomepage);
+#endif
 }
 
 bool AppPackageKitResource::isTechnical() const
@@ -183,11 +206,15 @@ bool AppPackageKitResource::canExecute() const
 
 QStringList AppPackageKitResource::findProvides(Appstream::Provides::Kind kind) \
const  {
+#ifdef NEWAPPSTREAM
+    return m_appdata.provided(kind).items();
+#else
     QStringList ret;
     Q_FOREACH (Appstream::Provides p, m_appdata.provides())
         if (p.kind() == kind)
             ret += p.value();
     return ret;
+#endif
 }
 
 QStringList AppPackageKitResource::allPackageNames() const
diff --git a/libdiscover/backends/PackageKitBackend/CMakeLists.txt \
b/libdiscover/backends/PackageKitBackend/CMakeLists.txt index e31ea86..f8bb1d2 100644
--- a/libdiscover/backends/PackageKitBackend/CMakeLists.txt
+++ b/libdiscover/backends/PackageKitBackend/CMakeLists.txt
@@ -10,7 +10,13 @@ add_library(packagekit-backend MODULE PackageKitBackend.cpp
     PackageKitSourcesBackend.cpp
     AppstreamReviews.cpp
 )
-target_link_libraries(packagekit-backend PRIVATE Discover::Common Qt5::Core \
PK::packagekitqt5 KF5::ConfigGui KF5::Service KF5::KIOWidgets KF5::Archive \
AppstreamQt) +
+set(AppstreamTarget "AppstreamQt")
+if (${AppstreamQt_VERSION} VERSION_GREATER 0.10.3)
+    target_compile_definitions(packagekit-backend PRIVATE -DNEWAPPSTREAM=0)
+    set(AppstreamTarget "AppStreamQt")
+endif()
+target_link_libraries(packagekit-backend PRIVATE Discover::Common Qt5::Core \
PK::packagekitqt5 KF5::ConfigGui KF5::Service KF5::KIOWidgets KF5::Archive \
${AppstreamTarget})  
 install(TARGETS packagekit-backend DESTINATION ${PLUGIN_INSTALL_DIR}/discover)
 install(FILES packagekit-backend.desktop DESTINATION \
                ${DATA_INSTALL_DIR}/libdiscover/backends)
diff --git a/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp \
b/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp index d2698e9..3f180e5 \
                100644
--- a/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
+++ b/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
@@ -54,7 +54,11 @@ PackageKitBackend::PackageKitBackend(QObject* parent)
     , m_isFetching(0)
     , m_reviews(new AppstreamReviews(this))
 {
+#ifdef NEWAPPSTREAM
+    bool b = m_appdata.load();
+#else
     bool b = m_appdata.open();
+#endif
     if (!b) {
         qWarning() << "Could not open the AppStream metadata pool";
 
@@ -122,7 +126,11 @@ void PackageKitBackend::reloadPackageList()
         disconnect(m_refresher.data(), &PackageKit::Transaction::finished, this, \
&PackageKitBackend::reloadPackageList);  }
 
+#ifdef NEWAPPSTREAM
+    const auto components = m_appdata.components();
+#else
     const auto components = m_appdata.allComponents();
+#endif
     QStringList neededPackages;
     neededPackages.reserve(components.size());
     foreach(const Appstream::Component& component, components) {
@@ -343,7 +351,11 @@ AbstractResource* PackageKitBackend::resourceByPackageName(const \
QString& name)  
 QList<AbstractResource*> PackageKitBackend::searchPackageName(const QString& \
searchText)  {
+#ifdef NEWAPPSTREAM
+    const QList<Appstream::Component> components = m_appdata.search(searchText);
+#else
     const QList<Appstream::Component> components = \
m_appdata.findComponentsByString(searchText, {}); +#endif
     const QStringList ids = kTransform<QStringList>(components, [](const \
Appstream::Component& comp) { return comp.id(); });  
     return resourcesByPackageNames<QList<AbstractResource*>>(ids);
diff --git a/libdiscover/backends/PackageKitBackend/PackageKitBackend.h \
b/libdiscover/backends/PackageKitBackend/PackageKitBackend.h index 7b8d3fb..6ca3a43 \
                100644
--- a/libdiscover/backends/PackageKitBackend/PackageKitBackend.h
+++ b/libdiscover/backends/PackageKitBackend/PackageKitBackend.h
@@ -29,7 +29,18 @@
 #include <QTimer>
 #include <QSet>
 #include <PackageKit/Transaction>
+
+#ifdef NEWAPPSTREAM
+#include <AppstreamQt/pool.h>
+#include <AppstreamQt/provided.h>
+namespace AppStream {
+    typedef Provided Provides;
+    typedef Pool Database;
+}
+namespace Appstream = AppStream;
+#else
 #include <AppstreamQt/database.h>
+#endif
 
 class AppstreamReviews;
 class AppPackageKitResource;


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

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