Git commit c78bbf9771f277359ff70435ba8f50578bfb5829 by Aleix Pol. Committed on 11/07/2018 at 19:59. Pushed by apol into branch 'master'. Require an update when the offline-update-action is enabled Upon /var/lib/PackageKit/offline-update-action modification CCMAIL: sitter@kde.org M +14 -2 libdiscover/backends/PackageKitBackend/PackageKitNotifier.cpp M +1 -1 libdiscover/backends/PackageKitBackend/PackageKitNotifier.h https://commits.kde.org/discover/c78bbf9771f277359ff70435ba8f50578bfb5829 diff --git a/libdiscover/backends/PackageKitBackend/PackageKitNotifier.cpp = b/libdiscover/backends/PackageKitBackend/PackageKitNotifier.cpp index 0ce055e8..e3761e3c 100644 --- a/libdiscover/backends/PackageKitBackend/PackageKitNotifier.cpp +++ b/libdiscover/backends/PackageKitBackend/PackageKitNotifier.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -77,6 +78,10 @@ PackageKitNotifier::PackageKitNotifier(QObject* parent) m_recheckTimer->setInterval(200); m_recheckTimer->setSingleShot(true); connect(m_recheckTimer, &QTimer::timeout, this, &PackageKitNotifier::r= echeckSystemUpdate); + + QFileSystemWatcher* watcher =3D new QFileSystemWatcher(this); + watcher->addPath(QStringLiteral(PK_OFFLINE_ACTION_FILENAME)); + connect(watcher, &QFileSystemWatcher::fileChanged, this, &PackageKitNo= tifier::nowNeedsReboot); } = PackageKitNotifier::~PackageKitNotifier() @@ -276,8 +281,7 @@ void PackageKitNotifier::transactionListChanged(const Q= StringList& tids) if (!restart.isNull()) { auto restartEvent =3D PackageKit::Transaction::Restart(res= tart.toInt()); if (restartEvent >=3D PackageKit::Transaction::RestartSess= ion) { - m_needsReboot =3D true; - Q_EMIT needsRebootChanged(); + nowNeedsReboot(); } } m_transactions.remove(t->tid().path()); @@ -287,6 +291,14 @@ void PackageKitNotifier::transactionListChanged(const = QStringList& tids) } } = +void PackageKitNotifier::nowNeedsReboot() +{ + if (!m_needsReboot) { + m_needsReboot =3D true; + Q_EMIT needsRebootChanged(); + } +} + void PackageKitNotifier::onRequireRestart(PackageKit::Transaction::Restart= type, const QString &packageID) { PackageKit::Transaction* t =3D qobject_cast(= sender()); diff --git a/libdiscover/backends/PackageKitBackend/PackageKitNotifier.h b/= libdiscover/backends/PackageKitBackend/PackageKitNotifier.h index 2fd74651..9df25d41 100644 --- a/libdiscover/backends/PackageKitBackend/PackageKitNotifier.h +++ b/libdiscover/backends/PackageKitBackend/PackageKitNotifier.h @@ -52,9 +52,9 @@ private Q_SLOTS: void onDistroUpgrade(PackageKit::Transaction::DistroUpgrade type, cons= t QString &name, const QString &description); = private: + void nowNeedsReboot(); void recheckSystemUpdate(); void checkOfflineUpdates(); - void requireRestartNotification(PackageKit::Transaction::Restart type); void setupGetUpdatesTransaction(PackageKit::Transaction* transaction); QProcess* checkAptVariable(const QString &aptconfig, const QLatin1Stri= ng& varname, std::function func); =20