#pragma once #include #include #include #include #include #include #include #include class UpdateManager : public QObject { Q_OBJECT QML_ELEMENT QML_SINGLETON Q_PROPERTY(int packageCount READ packageCount NOTIFY packageCountChanged) Q_PROPERTY(bool isChecking READ isChecking NOTIFY isCheckingChanged) Q_PROPERTY(bool isUpdating READ isUpdating NOTIFY isUpdatingChanged) Q_PROPERTY(bool isInstalling READ isInstalling NOTIFY isInstallingChanged) Q_PROPERTY(bool isRemoving READ isRemoving NOTIFY isRemovingChanged) public: explicit UpdateManager(QObject* parent = nullptr); public: int packageCount() const; bool isChecking() const; bool isUpdating() const; bool isInstalling() const; bool isRemoving() const; private: QProcess m_process; private: bool m_isChecking = false; bool m_isUpdating = false; bool m_isInstalling = false; bool m_isRemoving = false; signals: void packageCountChanged(); void isCheckingChanged(); void isUpdatingChanged(); void isInstallingChanged(); void isRemovingChanged(); };