@@ -38,7 +38,8 @@ SystemImage::SystemImage(QObject *parent)
38 this, SLOT(onUpdateFailed(int,QString)));
38 this, SLOT(onUpdateFailed(int,QString)));
39 QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("Applied"),
39 QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("Applied"),
40 this, SLOT(onUpdateApplied(bool)));
40 this, SLOT(onUpdateApplied(bool)));
41−
41+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("Rebooting"),
42+ this, SLOT(onRebooting(bool)));
42 QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("UpdateProgress"),
43 QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("UpdateProgress"),
43 this, SLOT(onUpdateProgress(int,double)));
44 this, SLOT(onUpdateProgress(int,double)));
@@ -54,6 +55,8 @@ void SystemImage::checkForUpdate()
54void SystemImage::applyUpdate()
55void SystemImage::applyUpdate()
56 qDebug() << "!!! Applying update";
57 qDebug() << "!!! Applying update";
58+ setUpdateApplying(true);
57 const QDBusMessage msg = QDBusMessage::createMethodCall(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE,
60 const QDBusMessage msg = QDBusMessage::createMethodCall(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE,
58 QStringLiteral("ApplyUpdate"));
61 QStringLiteral("ApplyUpdate"));
59 QDBusConnection::systemBus().asyncCall(msg);
62 QDBusConnection::systemBus().asyncCall(msg);
@@ -99,11 +102,13 @@ void SystemImage::onUpdateFailed(int consecutive_failure_count, const QString &l
100 Q_UNUSED(consecutive_failure_count)
103 Q_UNUSED(consecutive_failure_count)
101 qWarning() << Q_FUNC_INFO << "System Update failed:" << last_reason;
104 qWarning() << Q_FUNC_INFO << "System Update failed:" << last_reason;
105+ setUpdateApplying(false);
104void SystemImage::onUpdateApplied(bool applied)
108void SystemImage::onUpdateApplied(bool applied)
106 qDebug() << Q_FUNC_INFO << "System Update applied with status:" << applied;
110 qDebug() << Q_FUNC_INFO << "System Update applied with status:" << applied;
111+ setUpdateApplying(false);
107 if (applied) {
112 if (applied) {
108 resetUpdateStatus();
113 resetUpdateStatus();
109 Q_EMIT updateAvailableStatus();
114 Q_EMIT updateAvailableStatus();
@@ -115,9 +120,24 @@ void SystemImage::onUpdateProgress(int percentage, double eta)
115 qDebug() << "!!! Download progress:" << percentage << "%, ETA seconds:" << eta;
120 qDebug() << "!!! Download progress:" << percentage << "%, ETA seconds:" << eta;
123+void SystemImage::onRebooting(bool status)
125+ setUpdateApplying(false);
126+ qDebug() << "!!! Rebooting:" << status;
129+void SystemImage::setUpdateApplying(bool status)
131+ if (status != m_updateApplying) {
132+ m_updateApplying = status;
133+ Q_EMIT updateApplyingChanged();
118void SystemImage::resetUpdateStatus()
137void SystemImage::resetUpdateStatus()
120 m_updateAvailable = false;
139 m_updateAvailable = false;
140+ m_updateApplying = false;
121 m_downloading = false;
141 m_downloading = false;
122 m_downloaded = false;
142 m_downloaded = false;
123 m_availableVersion.clear();
143 m_availableVersion.clear();