File indexing completed on 2025-04-27 04:08:16

0001 /*
0002     SPDX-FileCopyrightText: 2012 Dan Leinir Turthra Jensen <admin@leinir.dk>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 
0008 #include "LayerThumbProvider.h"
0009 #include "LayerModel.h"
0010 #include <KisViewManager.h>
0011 #include <kis_image.h>
0012 
0013 class LayerThumbProvider::Private {
0014 public:
0015     Private()
0016         : layerModel(0)
0017         , id(0)
0018     {};
0019     LayerModel* layerModel;
0020     int id;
0021 };
0022 
0023 LayerThumbProvider::LayerThumbProvider()
0024     : QQuickImageProvider(QQuickImageProvider::Image)
0025     , d(new Private)
0026 {
0027 }
0028 
0029 LayerThumbProvider::~LayerThumbProvider()
0030 {
0031     delete d;
0032 }
0033 
0034 QImage LayerThumbProvider::requestImage(const QString& id, QSize* size, const QSize& requestedSize)
0035 {
0036     Q_UNUSED(size);
0037     Q_UNUSED(requestedSize);
0038     if (id.split("/").first() == QLatin1String("fullimage")) {
0039         KisViewManager* view = qobject_cast<KisViewManager*>(d->layerModel->view());
0040         int width = 300 * ((float)view->image()->bounds().width() / (float)view->image()->bounds().height());
0041         return view->image()->convertToQImage(QSize(width, 300), view->image()->profile());
0042     }
0043     return d->layerModel->layerThumbnail(id);
0044 }
0045 
0046 void LayerThumbProvider::setLayerModel(LayerModel* model)
0047 {
0048     d->layerModel = model;
0049 }
0050 
0051 void LayerThumbProvider::setLayerID(int id)
0052 {
0053     d->id = id;
0054 }
0055 
0056 int LayerThumbProvider::layerID() const
0057 {
0058     return d->id;
0059 }