Skip to content
Snippets Groups Projects
ocsurlhandler.h 982 B
Newer Older
akiraohgaki's avatar
akiraohgaki committed
#pragma once
akiraohgaki's avatar
akiraohgaki committed

#include <QObject>
akiraohgaki's avatar
akiraohgaki committed
#include <QJsonObject>
akiraohgaki's avatar
akiraohgaki committed

akiraohgaki's avatar
akiraohgaki committed
namespace Qtil {
akiraohgaki's avatar
akiraohgaki committed
class NetworkResource;
akiraohgaki's avatar
akiraohgaki committed
}

akiraohgaki's avatar
akiraohgaki committed
class ConfigHandler;

akiraohgaki's avatar
akiraohgaki committed
class OcsUrlHandler : public QObject
akiraohgaki's avatar
akiraohgaki committed
{
    Q_OBJECT

public:
    explicit OcsUrlHandler(const QString &ocsUrl, ConfigHandler *configHandler, QObject *parent = nullptr);
akiraohgaki's avatar
akiraohgaki committed

akiraohgaki's avatar
akiraohgaki committed
signals:
    void started();
akiraohgaki's avatar
akiraohgaki committed
    void finishedWithSuccess(QJsonObject result);
    void finishedWithError(QJsonObject result);
akiraohgaki's avatar
akiraohgaki committed
    void downloadProgress(QString id, qint64 bytesReceived, qint64 bytesTotal);
akiraohgaki's avatar
akiraohgaki committed

public slots:
akiraohgaki's avatar
akiraohgaki committed
    QString ocsUrl() const;
akiraohgaki's avatar
akiraohgaki committed
    QJsonObject metadata() const;

akiraohgaki's avatar
akiraohgaki committed
    void process();
    bool isValid() const;
    void openDestination() const;
akiraohgaki's avatar
akiraohgaki committed

private slots:
akiraohgaki's avatar
akiraohgaki committed
    void networkResourceFinished(Qtil::NetworkResource *resource);
akiraohgaki's avatar
akiraohgaki committed

akiraohgaki's avatar
akiraohgaki committed
private:
akiraohgaki's avatar
akiraohgaki committed
    void parse();
akiraohgaki's avatar
akiraohgaki committed
    void saveDownloadedFile(Qtil::NetworkResource *resource);
    void installDownloadedFile(Qtil::NetworkResource *resource);
akiraohgaki's avatar
akiraohgaki committed

akiraohgaki's avatar
akiraohgaki committed
    QString ocsUrl_;
akiraohgaki's avatar
akiraohgaki committed
    ConfigHandler *configHandler_;
akiraohgaki's avatar
akiraohgaki committed
    QJsonObject metadata_;
akiraohgaki's avatar
akiraohgaki committed
};