21 #include <QLoggingCategory> 23 Q_DECLARE_LOGGING_CATEGORY(SYSTEMIMAGEPLUGIN)
25 class SystemImage : public QObject
28 Q_DISABLE_COPY(SystemImage)
30 Q_PROPERTY(
bool updateAvailable READ updateAvailable NOTIFY updateAvailableStatus)
31 Q_PROPERTY(
bool updateDownloading READ updateDownloading NOTIFY updateAvailableStatus)
32 Q_PROPERTY(QString availableVersion READ availableVersion NOTIFY updateAvailableStatus)
33 Q_PROPERTY(QString updateSize READ updateSize NOTIFY updateAvailableStatus)
34 Q_PROPERTY(
bool updateApplying READ updateApplying NOTIFY updateApplyingChanged)
35 Q_PROPERTY(
bool updateDownloaded READ updateDownloaded NOTIFY updateDownloadedChanged)
38 explicit SystemImage(QObject *parent =
nullptr);
39 ~SystemImage() = default;
41 bool updateAvailable()
const {
return m_updateAvailable; }
42 bool updateDownloading()
const {
return m_downloading; }
43 QString availableVersion()
const {
return m_availableVersion; }
44 QString updateSize()
const {
return m_updateSize; }
45 bool updateApplying()
const {
return m_updateApplying; }
46 bool updateDownloaded()
const {
return m_downloaded; }
49 Q_INVOKABLE
void checkForUpdate();
50 Q_INVOKABLE
void applyUpdate();
51 Q_INVOKABLE
void factoryReset();
54 void onUpdateAvailableStatus(
bool is_available,
bool updateDownloading,
const QString &available_version,
55 int update_size,
const QString &last_update_date,
const QString &error_reason);
56 void onUpdateDownloaded();
57 void onUpdateFailed(
int consecutive_failure_count,
const QString & last_reason);
58 void onUpdateApplied(
bool applied);
59 void onRebooting(
bool status);
62 void updateAvailableStatus();
63 void updateDownloadedChanged();
64 void updateApplyingChanged();
67 void setUpdateApplying(
bool status);
70 void resetUpdateStatus();
71 QString formatSize(quint64 size)
const;
74 bool m_updateAvailable =
false;
75 bool m_updateApplying =
false;
76 bool m_downloading =
false;
77 bool m_downloaded =
false;
78 QString m_availableVersion;
80 QString m_lastUpdateDate;
81 QString m_errorReason;
84 #endif // SYSTEMIMAGE_H