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 }