Skip to content
Snippets Groups Projects
ocsurlhandler.h 982 B
Newer Older
  • Learn to ignore specific revisions
  • 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
    };