/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright (C) 2017-2018 Simon Stürz . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #ifndef SNAPDCONTROL_H #define SNAPDCONTROL_H #include #include #include "devices/device.h" #include "snapdconnection.h" class SnapdControl : public QObject { Q_OBJECT public: explicit SnapdControl(Device *device, QObject *parent = nullptr); Device *device(); bool available() const; bool connected() const; bool enabled() const; bool timerBasedSchedule() const; private: Device *m_device = nullptr; SnapdConnection *m_snapConnection = nullptr; QString m_snapdSocketPath; bool m_enabled = true; QStringList m_updateChangeKinds; bool m_timerBasedSchedule = false; QString m_currentRefreshSchedule; QString m_preferredRefreshSchedule; // Update calls void loadSystemInfo(); void loadSnapList(); void loadRunningChanges(); void configureRefreshSchedule(); bool validAsyncResponse(const QVariantMap &responseMap); private slots: void onConnectedChanged(const bool &connected); // Response handler for different requests void onLoadSystemInfoFinished(); void onLoadSnapListFinished(); void onLoadRunningChangesFinished(); void onConfigureRefreshScheduleFinished(); void onSnapRefreshFinished(); void onSnapRevertFinished(); void onCheckForUpdatesFinished(); void onChangeSnapChannelFinished(); signals: void snapListUpdated(const QVariantList &snapList); public slots: void enable(); void disable(); // Snapd request calls void update(); void snapRefresh(); void checkForUpdates(); void setPreferredRefreshTime(int startTime); void snapRevert(const QString &snapName); void changeSnapChannel(const QString &snapName, const QString &channel); }; #endif // SNAPDCONTROL_H