56 m_isWarningActive(false),
59 QDBusConnection connection = QDBusConnection::sessionBus();
60 auto iface =
new QDBusInterface(QStringLiteral(
"org.ayatana.indicator.power"),
61 QStringLiteral(
"/org/ayatana/indicator/power/Battery"),
62 QStringLiteral(
"org.freedesktop.DBus.Properties"),
64 iface->connection().connect(
68 QStringLiteral(
"PropertiesChanged"),
72 QDBusPendingCall call =
73 iface->asyncCall(QStringLiteral(
"GetAll"),
74 QStringLiteral(
"org.ayatana.indicator.power.Battery"));
75 auto *watcher =
new QDBusPendingCallWatcher(call);
76 QObject::connect(watcher, &QDBusPendingCallWatcher::finished,
77 this, [
this](QDBusPendingCallWatcher *watcher) {
78 QDBusPendingReply<QVariantMap> reply = *watcher;
80 watcher->deleteLater();
99 auto i = properties.find(QStringLiteral(
"PowerLevel"));
100 if (i != properties.end()) {
101 auto oldPowerLevel = m_powerLevel;
102 m_powerLevel = powerLevelFromString(i->toString());
103 if (m_powerLevel != oldPowerLevel) {
104 Q_EMIT q->levelChanged();
108 i = properties.find(QStringLiteral(
"IsWarning"));
109 if (i != properties.end()) {
110 bool oldIsWarningActive = m_isWarningActive;
111 m_isWarningActive = i->toBool();
112 if (m_isWarningActive != oldIsWarningActive) {
113 Q_EMIT q->isWarningActiveChanged();