File indexing completed on 2024-05-12 13:04:45

0001 /*
0002  * This file is part of the KDE project
0003  *
0004  * SPDX-FileCopyrightText: 2013 Shantanu Tushar <shantanu@kde.org>
0005  * SPDX-FileCopyrightText: 2013 Sujith Haridasan <sujith.h@gmail.com>
0006  *
0007  * SPDX-License-Identifier: LGPL-2.0-or-later
0008  *
0009  */
0010 
0011 #include "CQImageProvider.h"
0012 
0013 
0014 const char CQImageProvider::identificationString[] = "cqimage";
0015 CQImageProvider *CQImageProvider::s_imageProvider = 0;
0016 
0017 CQImageProvider::CQImageProvider()
0018     : QDeclarativeImageProvider(Image)
0019 {
0020 }
0021 
0022 CQImageProvider::~CQImageProvider()
0023 {
0024 
0025 }
0026 
0027 QImage CQImageProvider::requestImage(const QString& id, QSize* size, const QSize& requestedSize)
0028 {
0029     if (m_images.contains(id)) {
0030         QImage image = m_images.value(id);
0031         *size = image.size();
0032         return requestedSize.isValid() ? image.scaled(requestedSize, Qt::KeepAspectRatioByExpanding) : image;
0033     }
0034     *size = QSize();
0035     return QImage();
0036 }
0037 
0038 void CQImageProvider::addImage(const QString& id, const QImage& image)
0039 {
0040     m_images.insert(id, image);
0041 }
0042 
0043 bool CQImageProvider::containsId(const QString& id)
0044 {
0045     return m_images.contains(id);
0046 }
0047 
0048 void CQImageProvider::clearCache()
0049 {
0050     m_images.clear();
0051 }