// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #include #include #include #include #include "libvideostitch/logging.hpp" #include "imagemanager.hpp" const QString ImageManager::STANDARD_THUMBNAIL = ":/live/icons/assets/images/mqdefault_live.jpg"; QPixmap ImageManager::getPixmapForUrl(const QUrl& fileUrl) const { if (imageCache.contains(fileUrl)) { return imageCache[fileUrl]; } networkAccessManager->get(QNetworkRequest(fileUrl)); return QPixmap(STANDARD_THUMBNAIL); } void ImageManager::clearCache() { imageCache.clear(); } ImageManager::ImageManager(QObject* parent) : QObject(parent), networkAccessManager(new QNetworkAccessManager()) { connect(networkAccessManager.get(), &QNetworkAccessManager::finished, this, &ImageManager::downloadFinished); } void ImageManager::downloadFinished(QNetworkReply* reply) { QUrl url = reply->url(); if (reply->error()) { VideoStitch::Logger::get(VideoStitch::Logger::Debug) << "Download of " << url.toEncoded().constData() << " failed: " << reply->errorString().toStdString() << std::endl; return; } VideoStitch::Logger::get(VideoStitch::Logger::Debug) << "Download of " << url.toEncoded().constData() << " succeded" << std::endl; QPixmap result; result.loadFromData(reply->readAll()); imageCache[url] = result; emit imageDataUpdated(url); }