17 #include "croppedimagesizerasyncworker.h"
19 #include "croppedimagesizer.h"
21 #include <QNetworkReply>
22 #include <QtConcurrentRun>
24 CroppedImageSizerAsyncWorker::CroppedImageSizerAsyncWorker(CroppedImageSizer *sizer, QNetworkReply *reply)
29 connect(m_reply, &QNetworkReply::finished,
this, &CroppedImageSizerAsyncWorker::requestFinished);
32 void CroppedImageSizerAsyncWorker::abort()
35 QMutexLocker locker(&m_mutex);
40 QMetaObject::invokeMethod(m_reply,
"abort", Qt::QueuedConnection);
44 void CroppedImageSizerAsyncWorker::requestFinished()
47 QMutexLocker locker(&m_mutex);
50 QtConcurrent::run(processRequestFinished,
this);
53 m_reply->deleteLater();
58 void CroppedImageSizerAsyncWorker::processRequestFinished(CroppedImageSizerAsyncWorker *worker)
62 QImageReader reader(worker->m_reply);
63 const QSize imageSize = reader.size();
65 worker->m_mutex.lock();
66 if (worker->m_sizer) {
67 QMetaObject::invokeMethod(worker->m_sizer,
"setImageSize", Qt::QueuedConnection, Q_ARG(QSize, imageSize));
69 worker->m_mutex.unlock();
72 worker->m_reply->deleteLater();
73 worker->deleteLater();