File indexing completed on 2024-05-05 04:22:00

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: