This repository has been archived on 2024-11-07. You can view files and clone it, but cannot push or open issues or pull requests.
plasma-pk-updates/plasma-pk-updates-0.3.2.20190908git-kde4libssupport.patch

127 lines
4.6 KiB
Diff
Raw Permalink Normal View History

From 6cff71f9dab014e1ea824e334ee029a5c62c35fa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Fri, 21 Jun 2019 01:08:28 +0200
Subject: Port away from KDELibs4Support, use Solid::Power interface
Summary:
The Solid::Power implementation does not track the state itself (to
avoid querying the initial state even when it is not used), so track
the state inside PkUpdates and query the initial state from the interface
asynchronously.
Test Plan:
The initial state is printed correctly in the debug output, same for
change notifications.
Depends on D21975
Reviewers: lukas, jgrulich
Reviewed By: jgrulich
Differential Revision: https://phabricator.kde.org/D21976
---
CMakeLists.txt | 2 +-
src/declarative/CMakeLists.txt | 4 ++--
src/declarative/pkupdates.cpp | 29 ++++++++++++++++++++++-------
src/declarative/pkupdates.h | 1 +
4 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d2dd2cb..48c4013 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,7 +26,7 @@ find_package(KF5 REQUIRED
I18n
CoreAddons # KFormat
Notifications
- KDELibs4Support #Solid::Power
+ Solid # Solid::Power
)
find_package(packagekitqt5 REQUIRED)
diff --git a/src/declarative/CMakeLists.txt b/src/declarative/CMakeLists.txt
index bdeb5b1..183a8d0 100644
--- a/src/declarative/CMakeLists.txt
+++ b/src/declarative/CMakeLists.txt
@@ -16,7 +16,7 @@ target_link_libraries(plasmapk_qmlplugins
KF5::CoreAddons
KF5::Notifications
KF5::ConfigCore
- KF5::KDELibs4Support
+ KF5::Solid
PK::packagekitqt5
)
@@ -38,7 +38,7 @@ target_link_libraries(plasmapk-console
KF5::I18n
KF5::CoreAddons
KF5::ConfigCore
- KF5::KDELibs4Support
+ KF5::Solid
KF5::Notifications
PK::packagekitqt5
)
diff --git a/src/declarative/pkupdates.cpp b/src/declarative/pkupdates.cpp
index ffccff7..db85eb1 100644
--- a/src/declarative/pkupdates.cpp
+++ b/src/declarative/pkupdates.cpp
@@ -27,7 +27,8 @@
#include <KLocalizedString>
#include <KFormat>
#include <KNotification>
-#include <Solid/PowerManagement>
+#include <Solid/Power>
+#include <Solid/AcPluggedJob>
#include <KConfigGroup>
#include <KSharedConfig>
@@ -47,18 +48,32 @@ namespace
} // namespace {
PkUpdates::PkUpdates(QObject *parent) :
- QObject(parent)
+ QObject(parent),
+ m_isOnBattery(true)
{
setStatusMessage(i18n("Idle"));
connect(PackageKit::Daemon::global(), &PackageKit::Daemon::changed, this, &PkUpdates::onChanged);
connect(PackageKit::Daemon::global(), &PackageKit::Daemon::updatesChanged, this, &PkUpdates::onUpdatesChanged);
connect(PackageKit::Daemon::global(), &PackageKit::Daemon::networkStateChanged, this, &PkUpdates::networkStateChanged);
- connect(Solid::PowerManagement::notifier(), &Solid::PowerManagement::Notifier::resumingFromSuspend, this,
+ connect(Solid::Power::self(), &Solid::Power::resumeFromSuspend, this,
[this] {PackageKit::Daemon::stateHasChanged(QStringLiteral("resume"));});
- connect(Solid::PowerManagement::notifier(), &Solid::PowerManagement::Notifier::appShouldConserveResourcesChanged,
- this, &PkUpdates::isOnBatteryChanged);
+ connect(Solid::Power::self(), &Solid::Power::acPluggedChanged, this, [this] (bool acPlugged) {
+ qCDebug(PLASMA_PK_UPDATES) << "acPluggedChanged onBattery:" << m_isOnBattery << "->" << !acPlugged;
+ if (!acPlugged != m_isOnBattery) {
+ m_isOnBattery = !acPlugged;
+ emit PkUpdates::isOnBatteryChanged();
+ }
+ });
+ auto acPluggedJob = Solid::Power::self()->isAcPlugged(this);
+ connect(acPluggedJob , &Solid::Job::result, this, [this] (Solid::Job* job) {
+ bool acPlugged = static_cast<Solid::AcPluggedJob*>(job)->isPlugged();
+ qCDebug(PLASMA_PK_UPDATES) << "acPlugged initial state" << acPlugged;
+ m_isOnBattery = !acPlugged;
+ emit PkUpdates::isOnBatteryChanged();
+ });
+ acPluggedJob->start();
connect(PackageKit::Daemon::global(), &PackageKit::Daemon::networkStateChanged, this, &PkUpdates::doDelayedCheckUpdates);
connect(this, &PkUpdates::isActiveChanged, this, &PkUpdates::messageChanged);
@@ -194,8 +209,8 @@ bool PkUpdates::isNetworkMobile() const
bool PkUpdates::isOnBattery() const
{
- qCDebug(PLASMA_PK_UPDATES) << "Is on battery:" << Solid::PowerManagement::appShouldConserveResources();
- return Solid::PowerManagement::appShouldConserveResources();
+ qCDebug(PLASMA_PK_UPDATES) << "Is on battery:" << m_isOnBattery;
+ return m_isOnBattery;
}
void PkUpdates::getUpdateDetails(const QString &pkgID)