[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