typedefs in ThumbnailDownloader

This commit is contained in:
Veloman Yunkan 2024-02-06 16:53:04 +04:00
parent 535675afdb
commit 847c65baf1
2 changed files with 15 additions and 11 deletions

View File

@ -18,7 +18,7 @@ ThumbnailDownloader::~ThumbnailDownloader()
{
}
void ThumbnailDownloader::addDownload(QString url, QModelIndex index)
void ThumbnailDownloader::addDownload(QString url, ThumbnailId index)
{
m_urlPairList.append({index, url});
if (!m_isDownloading)
@ -35,18 +35,18 @@ void ThumbnailDownloader::startDownload()
downloadOnePair(m_urlPairList.takeFirst());
}
void ThumbnailDownloader::downloadOnePair(QPair<QModelIndex, QString> urlPair)
void ThumbnailDownloader::downloadOnePair(ThumbnailInfo thumbnailInfo)
{
QNetworkRequest req(urlPair.second);
QNetworkRequest req(thumbnailInfo.second);
auto reply = manager.get(req);
connect(reply, &QNetworkReply::finished, this, [=](){
fileDownloaded(reply, urlPair);
fileDownloaded(reply, thumbnailInfo);
});
}
void ThumbnailDownloader::fileDownloaded(QNetworkReply *pReply, QPair<QModelIndex, QString> urlPair)
void ThumbnailDownloader::fileDownloaded(QNetworkReply *pReply, ThumbnailInfo thumbnailInfo)
{
auto downloadedData = pReply->readAll();
emit oneThumbnailDownloaded(urlPair.first, urlPair.second, downloadedData);
emit oneThumbnailDownloaded(thumbnailInfo.first, thumbnailInfo.second, downloadedData);
pReply->deleteLater();
}

View File

@ -12,25 +12,29 @@ class ThumbnailDownloader : public QObject
{
Q_OBJECT
public:
typedef QModelIndex ThumbnailId;
typedef QPair<ThumbnailId, QString> ThumbnailInfo;
public:
ThumbnailDownloader(QObject *parent = 0);
~ThumbnailDownloader();
void addDownload(QString url, QModelIndex index);
void addDownload(QString url, ThumbnailId index);
void startDownload();
void downloadOnePair(QPair<QModelIndex, QString> urlPair);
void downloadOnePair(ThumbnailInfo thumbnailInfo);
void clearQueue() { m_urlPairList.clear(); }
signals:
void oneThumbnailDownloaded(QModelIndex, QString, QByteArray);
void oneThumbnailDownloaded(ThumbnailId, QString, QByteArray);
private:
QQueue<QPair<QModelIndex, QString>> m_urlPairList;
QQueue<ThumbnailInfo> m_urlPairList;
QNetworkAccessManager manager;
bool m_isDownloading = false;
private slots:
void fileDownloaded(QNetworkReply *pReply, QPair<QModelIndex, QString> urlPair);
void fileDownloaded(QNetworkReply *pReply, ThumbnailInfo thumbnailInfo);
};