Forked from
akiraohgaki / ocs-manager
114 commits behind the upstream repository.
-
akiraohgaki authoredakiraohgaki authored
itemhandler.h 1.51 KiB
#pragma once
#include <QObject>
#include <QJsonObject>
namespace qtil {
class NetworkResource;
}
class ConfigHandler;
class ItemHandler : public QObject
{
Q_OBJECT
public:
explicit ItemHandler(ConfigHandler *configHandler, QObject *parent = nullptr);
signals:
void metadataSetChanged();
void downloadStarted(QJsonObject result);
void downloadFinished(QJsonObject result);
void downloadProgress(QString id, qint64 bytesReceived, qint64 bytesTotal);
void saveStarted(QJsonObject result);
void saveFinished(QJsonObject result);
void installStarted(QJsonObject result);
void installFinished(QJsonObject result);
void uninstallStarted(QJsonObject result);
void uninstallFinished(QJsonObject result);
public slots:
QJsonObject metadataSet() const;
void getItem(const QString &command, const QString &url, const QString &installType, const QString &filename = QString(),
const QString &providerKey = QString(), const QString &contentId = QString());
void getItemByOcsUrl(const QString &ocsUrl, const QString &providerKey = QString(), const QString &contentId = QString());
void uninstall(const QString &itemKey);
private slots:
void networkResourceFinished(qtil::NetworkResource *resource);
private:
void setMetadataSet(const QJsonObject &metadataSet);
void saveDownloadedFile(qtil::NetworkResource *resource);
void installDownloadedFile(qtil::NetworkResource *resource);
ConfigHandler *configHandler_;
QJsonObject metadataSet_;
};