[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