/* * SPDX-FileCopyrightText: 2013 - 2026 Jolla Ltd. * * SPDX-License-Identifier: BSD-3-Clause */ #ifndef FEDIVERSEUPLOADER_H #define FEDIVERSEUPLOADER_H #include #include #include "fediverseshareservicestatus.h" class FediverseApi; class FediverseUploader : public MediaTransferInterface { Q_OBJECT public: FediverseUploader(QNetworkAccessManager *qnam, QObject *parent = 0); ~FediverseUploader(); QString displayName() const; QUrl serviceIcon() const; bool cancelEnabled() const; bool restartEnabled() const; public Q_SLOTS: void start(); void cancel(); private Q_SLOTS: void startUploading(); void transferFinished(); void transferProgress(qreal progress); void transferError(); void transferCanceled(); void credentialsExpired(); protected: void setStatus(MediaTransferInterface::TransferStatus status); private: void ensureApi(); void postImage(); void postStatus(); FediverseApi *m_api; FediverseShareServiceStatus *m_fediverseShareServiceStatus; QNetworkAccessManager *m_qnam; FediverseShareServiceStatus::AccountDetails m_accountDetails; bool m_useTmpFile; QString m_filePath; }; #endif // FEDIVERSEUPLOADER_H