#include "asyncimageresponse.h" #include "imageprovider.h" #include <QQuickImageResponse> #include <QtConcurrent> ImageProvider::ImageProvider() = default; ImageProvider::~ImageProvider() = default; QQuickImageResponse *ImageProvider::requestImageResponse(const QString &id, const QSize &requestedSize) { AsyncImageResponse* response = new AsyncImageResponse(); auto readImage = [id, requestedSize, response]() mutable { Q_UNUSED(requestedSize); auto params = id.split("/"); if (params.contains("player")) { response->setResult(QImage(":/img/defaultuser"). scaled(requestedSize, Qt::KeepAspectRatioByExpanding)); } else if (params.contains("item")) { response->setResult(QImage(":/img/defaultsnake"). scaled(requestedSize, Qt::KeepAspectRatioByExpanding)); } else { response->error("Wrong first parametr example 'first/last'"); } }; QtConcurrent::run(readImage); return response; }