[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [muon/frameworks] libmuon/backends/PackageKitBackend: Fix PackageKit::isFetching
From: Aleix Pol <aleixpol () kde ! org>
Date: 2014-10-01 2:03:51
Message-ID: E1XZ9Gh-0002u5-B3 () scm ! kde ! org
[Download RAW message or body]
Git commit 0bad3b9d4c39244db9d7669c648665783222f071 by Aleix Pol.
Committed on 01/10/2014 at 01:28.
Pushed by apol into branch 'frameworks'.
Fix PackageKit::isFetching
Make it possible for the PackageKitBackend to have different transactions
notify that it's fetching by using an integer in the implementation.
M +11 -8 libmuon/backends/PackageKitBackend/PackageKitBackend.cpp
M +2 -2 libmuon/backends/PackageKitBackend/PackageKitBackend.h
http://commits.kde.org/muon/0bad3b9d4c39244db9d7669c648665783222f071
diff --git a/libmuon/backends/PackageKitBackend/PackageKitBackend.cpp \
b/libmuon/backends/PackageKitBackend/PackageKitBackend.cpp index 9b3e4e3..cee1e99 \
100644
--- a/libmuon/backends/PackageKitBackend/PackageKitBackend.cpp
+++ b/libmuon/backends/PackageKitBackend/PackageKitBackend.cpp
@@ -65,17 +65,21 @@ bool PackageKitBackend::isFetching() const
return m_isFetching;
}
-void PackageKitBackend::setFetching(bool f)
+void PackageKitBackend::acquireFetching(bool f)
{
- if (f != m_isFetching) {
- m_isFetching = f;
+ if (f)
+ m_isFetching++;
+ else
+ m_isFetching--;
+
+ if ((!f && m_isFetching==0) || (f && m_isFetching==1)) {
emit fetchingChanged();
}
}
void PackageKitBackend::reloadPackageList()
{
- setFetching(true);
+ acquireFetching(true);
m_updatingPackages = m_packages;
if (m_refresher) {
@@ -114,11 +118,11 @@ void \
PackageKitBackend::getPackagesFinished(PackageKit::Transaction::Exit exit) }
m_packages = m_updatingPackages;
- setFetching(false);
QStringList ids;
foreach(AbstractResource* res, m_updatingPackages) {
ids += qobject_cast<PackageKitResource*>(res)->availablePackageId();
}
+ acquireFetching(false);
// PackageKit has a maximum of packages to process called \
PK_TRANSACTION_MAX_PACKAGES_TO_PROCESS // which is 5200 today. To workaround that, \
we'll create different transactions that we'll process @@ -138,9 +142,7 @@ void \
PackageKitBackend::transactionError(PackageKit::Transaction::Error, const Q
void PackageKitBackend::queueTransactionFinished(PackageKit::Transaction::Exit exit, \
uint) {
-// that's a workaround to some kind of bug I don't really understand
- if (exit == PackageKit::Transaction::ExitUnknown)
- return;
+ acquireFetching(false);
if (exit != PackageKit::Transaction::ExitSuccess) {
qWarning() << "error while fetching details" << exit;
@@ -153,6 +155,7 @@ void PackageKitBackend::iterateTransactionQueue()
if (m_transactionQueue.isEmpty())
return;
+ acquireFetching(true);
PackageKit::Transaction* transaction = m_transactionQueue.takeFirst()();
connect(transaction, SIGNAL(details(PackageKit::Details)), \
SLOT(packageDetails(PackageKit::Details)));
connect(transaction, SIGNAL(errorCode(PackageKit::Transaction::Error,QString)), \
SLOT(transactionError(PackageKit::Transaction::Error,QString)));
diff --git a/libmuon/backends/PackageKitBackend/PackageKitBackend.h \
b/libmuon/backends/PackageKitBackend/PackageKitBackend.h index f0c6bf4..1422cd1 \
100644
--- a/libmuon/backends/PackageKitBackend/PackageKitBackend.h
+++ b/libmuon/backends/PackageKitBackend/PackageKitBackend.h
@@ -69,7 +69,7 @@ class MUONPRIVATE_EXPORT PackageKitBackend : public \
AbstractResourcesBackend
private:
void iterateTransactionQueue();
- void setFetching(bool f);
+ void acquireFetching(bool f);
QHash<QString, AbstractResource*> m_packages;
QHash<QString, AbstractResource*> m_updatingPackages;
@@ -78,7 +78,7 @@ class MUONPRIVATE_EXPORT PackageKitBackend : public \
AbstractResourcesBackend PackageKitUpdater* m_updater;
QList<PackageKitResource*> m_upgradeablePackages;
QPointer<PackageKit::Transaction> m_refresher;
- bool m_isFetching;
+ int m_isFetching;
QList<std::function<PackageKit::Transaction*()>> m_transactionQueue;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic