From 0e13f4c2005235cd7e3d200f5382ca7725bb7431 Mon Sep 17 00:00:00 2001
From: Rex Dieter <rdieter@math.unl.edu>
Date: Wed, 28 Oct 2015 08:28:41 -0500
Subject: [PATCH 15/15] explicitly set PK cache-age
Recent versions of PackageKit default to cache-age of infinity, since
https://github.com/hughsie/PackageKit/commit/1615ace6ea5f3348ab8c76b713809bbe5a450d23
REVIEW: 125840
---
ApperKCM/ApperKCM.cpp | 2 ++
ApperKCM/ApperKCM.h | 1 +
apperd/RefreshCacheTask.cpp | 4 +++-
apperd/RefreshCacheTask.h | 1 +
declarative-plugins/daemonhelper.cpp | 5 +++++
declarative-plugins/daemonhelper.h | 1 +
plasmoid/package/contents/ui/Transaction.qml | 2 ++
7 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/ApperKCM/ApperKCM.cpp b/ApperKCM/ApperKCM.cpp
index c0d8dc7..8cfe823 100644
--- a/ApperKCM/ApperKCM.cpp
+++ b/ApperKCM/ApperKCM.cpp
@@ -78,6 +78,7 @@ ApperKCM::ApperKCM(QWidget *parent, const QVariantList &args) :
m_findIcon("edit-find"),
m_cancelIcon("dialog-cancel"),
m_forceRefreshCache(false),
+ m_cacheAge(600),
m_history(0),
m_searchRole(Transaction::RoleUnknown)
{
@@ -761,6 +762,7 @@ void ApperKCM::refreshCache()
PkTransactionWidget *transactionW = new PkTransactionWidget(this);
connect(transactionW, SIGNAL(titleChangedProgress(QString)), this, SIGNAL(caption(QString)));
QPointer<PkTransaction> transaction = new PkTransaction(transactionW);
+ Daemon::setHints (QLatin1String("cache-age=")+QString::number(m_cacheAge));
transaction->refreshCache(m_forceRefreshCache);
transactionW->setTransaction(transaction, Transaction::RoleRefreshCache);
diff --git a/ApperKCM/ApperKCM.h b/ApperKCM/ApperKCM.h
index 317ba3a..18e9c70 100644
--- a/ApperKCM/ApperKCM.h
+++ b/ApperKCM/ApperKCM.h
@@ -119,6 +119,7 @@ private:
FiltersMenu *m_filtersMenu;
Transaction::Roles m_roles;
bool m_forceRefreshCache;
+ uint m_cacheAge;
TransactionHistory *m_history;
diff --git a/apperd/RefreshCacheTask.cpp b/apperd/RefreshCacheTask.cpp
index c10aeec..7a6ee3f 100644
--- a/apperd/RefreshCacheTask.cpp
+++ b/apperd/RefreshCacheTask.cpp
@@ -33,7 +33,8 @@ RefreshCacheTask::RefreshCacheTask(QObject *parent) :
QObject(parent),
m_transaction(0),
m_notification(0),
- m_lastError(Transaction::ErrorUnknown)
+ m_lastError(Transaction::ErrorUnknown),
+ m_cacheAge(3600)
{
}
@@ -43,6 +44,7 @@ void RefreshCacheTask::refreshCache()
if (!m_transaction) {
// Refresh Cache is false otherwise it will rebuild
// the whole cache on Fedora
+ Daemon::setHints (QLatin1String("cache-age=")+QString::number(m_cacheAge));
m_transaction = Daemon::refreshCache(false);
connect(m_transaction, SIGNAL(finished(PackageKit::Transaction::Exit,uint)),
this, SLOT(refreshCacheFinished(PackageKit::Transaction::Exit,uint)));
diff --git a/apperd/RefreshCacheTask.h b/apperd/RefreshCacheTask.h
index a10c78f..13859ff 100644
--- a/apperd/RefreshCacheTask.h
+++ b/apperd/RefreshCacheTask.h
@@ -44,6 +44,7 @@ private:
Transaction *m_transaction;
KNotification *m_notification;
Transaction::Error m_lastError;
+ uint m_cacheAge;
QString m_lastErrorString;
};
diff --git a/declarative-plugins/daemonhelper.cpp b/declarative-plugins/daemonhelper.cpp
index 9e5dc97..df6740e 100644
--- a/declarative-plugins/daemonhelper.cpp
+++ b/declarative-plugins/daemonhelper.cpp
@@ -32,3 +32,8 @@ uint DaemonHelper::getTimeSinceLastRefresh()
{
return Daemon::global()->getTimeSinceAction(Transaction::RoleRefreshCache);
}
+
+void DaemonHelper::setCacheAge (int age)
+{
+ Daemon::setHints(QLatin1String("cache-age=")+QString::number(age));
+}
diff --git a/declarative-plugins/daemonhelper.h b/declarative-plugins/daemonhelper.h
index 469a481..b49d292 100644
--- a/declarative-plugins/daemonhelper.h
+++ b/declarative-plugins/daemonhelper.h
@@ -30,6 +30,7 @@ public:
public Q_SLOTS:
uint getTimeSinceLastRefresh();
+ void setCacheAge (int age);
};
#endif // DAEMONHELPER_H
diff --git a/plasmoid/package/contents/ui/Transaction.qml b/plasmoid/package/contents/ui/Transaction.qml
index f16409f..9153365 100644
--- a/plasmoid/package/contents/ui/Transaction.qml
+++ b/plasmoid/package/contents/ui/Transaction.qml
@@ -27,6 +27,7 @@ FocusScope {
clip: true
property int progressWidth: 30
+ property int cacheAge: 600
property alias transaction: updateTransaction
signal finished(bool success);
@@ -38,6 +39,7 @@ FocusScope {
function refreshCache() {
updateTransaction.enableJobWatcher(false);
+ DaemonHelper.setCacheAge(cacheAge);
updateTransaction.refreshCache(false);
}
--
1.9.3