File indexing completed on 2024-05-05 16:28:10
0001 /* SPDX-FileCopyrightText: 2003-2010 Jesper K. Pedersen <blackie@kde.org> 0002 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #ifndef IMAGELOADERTHREAD_H 0007 #define IMAGELOADERTHREAD_H 0008 0009 #include <QImage> 0010 #include <qthread.h> 0011 0012 namespace ImageManager 0013 { 0014 class AsyncLoader; 0015 class ImageRequest; 0016 class ThumbnailStorage; 0017 0018 static const int maxJPEGMemorySize = (20 * 1024 * 1024); 0019 0020 class ImageLoaderThread : public QThread 0021 { 0022 public: 0023 ImageLoaderThread(size_t bufsize = maxJPEGMemorySize); 0024 ~ImageLoaderThread() override; 0025 0026 protected: 0027 void run() override; 0028 QImage loadImage(ImageRequest *request, bool &ok); 0029 static int calcLoadSize(ImageRequest *request); 0030 QImage scaleAndRotate(ImageRequest *request, QImage img); 0031 bool shouldImageBeScale(const QImage &img, ImageRequest *request); 0032 0033 private: 0034 char *m_imageLoadBuffer; 0035 size_t m_bufSize; 0036 }; 0037 } 0038 0039 #endif /* IMAGELOADERTHREAD_H */ 0040 0041 // vi:expandtab:tabstop=4 shiftwidth=4: