[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [discover/Plasma/5.8] libdiscover/backends/PackageKitBackend: Properly update packages state after t
From: Aleix Pol <aleixpol () kde ! org>
Date: 2016-10-20 22:44:46
Message-ID: E1bxM4s-0005nU-Ud () code ! kde ! org
[Download RAW message or body]
Git commit aacc46733056be6f5681f512efdb652fae9bf629 by Aleix Pol.
Committed on 20/10/2016 at 22:44.
Pushed by apol into branch 'Plasma/5.8'.
Properly update packages state after transaction
BUG: 370901
M +2 -1 libdiscover/backends/PackageKitBackend/PKTransaction.cpp
M +8 -0 libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
M +1 -0 libdiscover/backends/PackageKitBackend/PackageKitBackend.h
M +2 -0 libdiscover/backends/PackageKitBackend/PackageKitResource.h
http://commits.kde.org/discover/aacc46733056be6f5681f512efdb652fae9bf629
diff --git a/libdiscover/backends/PackageKitBackend/PKTransaction.cpp \
b/libdiscover/backends/PackageKitBackend/PKTransaction.cpp index 6b2f240..1428c28 \
100644
--- a/libdiscover/backends/PackageKitBackend/PKTransaction.cpp
+++ b/libdiscover/backends/PackageKitBackend/PKTransaction.cpp
@@ -167,7 +167,6 @@ void PKTransaction::cleanup(PackageKit::Transaction::Exit exit, \
uint runtime) backend->transactionCanceled(this);
else
backend->removeTransaction(this);
- backend->fetchUpdates();
}
void PKTransaction::proceed()
@@ -188,6 +187,8 @@ void PKTransaction::submitResolve()
needResolving += PackageKit::Daemon::packageName(pkgid);
}
const auto backend = qobject_cast<PackageKitBackend*>(resource()->backend());
+
+ backend->clearPackages(needResolving);
backend->resolvePackages(needResolving);
}
diff --git a/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp \
b/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp index 17f4953..f42a180 \
100644
--- a/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
+++ b/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
@@ -181,6 +181,14 @@ class TransactionSet : public QObject
};
+void PackageKitBackend::clearPackages(const QStringList& packageNames)
+{
+ const auto resources = \
resourcesByPackageNames<QVector<AbstractResource*>>(packageNames); + for(auto res: \
resources) { + qobject_cast<PackageKitResource*>(res)->clearPackageIds();
+ }
+}
+
void PackageKitBackend::resolvePackages(const QStringList &packageNames)
{
PackageKit::Transaction * tArch = PackageKit::Daemon::resolve(packageNames, \
PackageKit::Transaction::FilterArch);
diff --git a/libdiscover/backends/PackageKitBackend/PackageKitBackend.h \
b/libdiscover/backends/PackageKitBackend/PackageKitBackend.h index f5d8557..7b8d3fb \
100644
--- a/libdiscover/backends/PackageKitBackend/PackageKitBackend.h
+++ b/libdiscover/backends/PackageKitBackend/PackageKitBackend.h
@@ -64,6 +64,7 @@ class DISCOVERCOMMON_EXPORT PackageKitBackend : public \
AbstractResourcesBackend
QVector<AppPackageKitResource*> extendedBy(const QString& id) const;
void fetchUpdates();
+ void clearPackages(const QStringList &packageNames);
void resolvePackages(const QStringList &packageNames);
void fetchDetails(const QString& pkgid);
diff --git a/libdiscover/backends/PackageKitBackend/PackageKitResource.h \
b/libdiscover/backends/PackageKitBackend/PackageKitResource.h index 2d5ab64..c3d96d4 \
100644
--- a/libdiscover/backends/PackageKitBackend/PackageKitResource.h
+++ b/libdiscover/backends/PackageKitBackend/PackageKitResource.h
@@ -58,6 +58,8 @@ class PackageKitResource : public AbstractResource
QString installedPackageId() const;
QString availablePackageId() const;
+ void clearPackageIds() { m_packages.clear(); }
+
QMap<PackageKit::Transaction::Info, QStringList> packages() const { return \
m_packages; }
PackageKitBackend* backend() const;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic