diff --git a/libdiscover/backends/PackageKitBackend/PackageKitUpdater.cpp b/libdiscover/backends/PackageKitBackend/PackageKitUpdater.cpp index 3d68f2ddf3ab8f7294ec78efef522a39678859ba..cac97f9c6a9fe1c616ebdd7b18cb93cca20490cf 100644 --- a/libdiscover/backends/PackageKitBackend/PackageKitUpdater.cpp +++ b/libdiscover/backends/PackageKitBackend/PackageKitUpdater.cpp @@ -28,6 +28,8 @@ #include #include +#include +#include #include int percentageWithStatus(PackageKit::Transaction::Status status, uint percentage) @@ -151,13 +153,27 @@ void PackageKitUpdater::proceed() if (!m_proceedFunctions.isEmpty()) processProceedFunction(); #ifdef PKQT_1_0 - else if (qEnvironmentVariableIsSet("PK_OFFLINE_UPDATE")) + else if (useOfflineUpdates()) setupTransaction(PackageKit::Transaction::TransactionFlagOnlyTrusted | PackageKit::Transaction::TransactionFlagOnlyDownload); #endif else setupTransaction(PackageKit::Transaction::TransactionFlagOnlyTrusted); } +bool PackageKitUpdater::useOfflineUpdates() const +{ + if (qEnvironmentVariableIsSet("PK_OFFLINE_UPDATE")) + return true; + KConfigGroup group(KSharedConfig::openConfig(), "Software"); + return group.readEntry("UseOfflineUpdates", false); +} + +void PackageKitUpdater::setUseOfflineUpdates(bool use) +{ + KConfigGroup group(KSharedConfig::openConfig(), "Software"); + group.writeEntry("UseOfflineUpdates", use); +} + void PackageKitUpdater::start() { Q_ASSERT(!isProgressing()); @@ -195,7 +211,7 @@ void PackageKitUpdater::finished(PackageKit::Transaction::Exit exit, uint /*time m_backend->fetchUpdates(); fetchLastUpdateTime(); - if (qEnvironmentVariableIsSet("PK_OFFLINE_UPDATE")) { + if (useOfflineUpdates()) { #ifdef PKQT_1_0 PackageKit::Daemon::global()->offline()->trigger(PackageKit::Offline::ActionReboot); Q_EMIT passiveMessage(i18n("Please restart the computer to finish the installation")); diff --git a/libdiscover/backends/PackageKitBackend/PackageKitUpdater.h b/libdiscover/backends/PackageKitBackend/PackageKitUpdater.h index 179a3d76f45e1efd98fa169c5695e759f6da5266..213da70a3c9fb605a7b87134118f7d300f07d298 100644 --- a/libdiscover/backends/PackageKitBackend/PackageKitUpdater.h +++ b/libdiscover/backends/PackageKitBackend/PackageKitUpdater.h @@ -83,6 +83,9 @@ class PackageKitUpdater : public AbstractBackendUpdater void fetchLastUpdateTime(); void lastUpdateTimeReceived(QDBusPendingCallWatcher* w); void setupTransaction(PackageKit::Transaction::TransactionFlags flags); + bool useOfflineUpdates() const; + void setUseOfflineUpdates(bool use); + QSet involvedPackages(const QSet& packages) const; QSet packagesForPackageId(const QSet& packages) const;