1 #include "thumbnailworker.h"
7 ThumbnailWorker::ThumbnailWorker() :
13 void ThumbnailWorker::addPath(const QString &path)
15 qDebug() << "ThumbnailWorker::addPath()" << path;
16 QMutexLocker locker(&m_mutex);
20 void ThumbnailWorker::clearPath()
22 QMutexLocker locker(&m_mutex);
26 QString ThumbnailWorker::getPath()
28 QMutexLocker locker(&m_mutex);
29 if (m_pathList.isEmpty()) {
32 qDebug() << "ThumbnailWorker::getPath()";
33 return m_pathList.takeFirst();
36 void ThumbnailWorker::run()
38 qDebug() << "ThumbnailWorker::run() enter.";
40 while (!isAborted()) {
41 QString path = getPath();
42 if (!path.isEmpty()) {
44 if (!pixmap.isNull()) {
46 double scaleX = 1.0 * size.width() / pixmap.width();
47 double scaleY = 1.0 * size.height() / pixmap.height();
48 double scaleFactor = qMin(scaleX, scaleY);
49 if (scaleFactor < 1) {
50 pixmap = pixmap.scaled(pixmap.size() * scaleFactor,
51 Qt::IgnoreAspectRatio,
52 Qt::SmoothTransformation);
54 emit resultReady(path, pixmap);
57 this->thread()->msleep(100);
61 qDebug() << "ThumbnailWorker::run() finished.";