1 #include "thumbnailworker.h"
7 ThumbnailWorker::ThumbnailWorker(QObject *parent) :
15 void ThumbnailWorker::addPath(const QString &path)
17 QMutexLocker locker(&m_mutex);
21 void ThumbnailWorker::clearPath()
23 QMutexLocker locker(&m_mutex);
27 void ThumbnailWorker::finish()
29 QMutexLocker locker(&m_mutex);
31 qDebug() << "ThumbnailWorker::finish()";
34 QString ThumbnailWorker::getPath()
36 QMutexLocker locker(&m_mutex);
37 if (m_pathList.isEmpty()) {
40 return m_pathList.takeFirst();
43 bool ThumbnailWorker::loop()
45 QMutexLocker locker(&m_mutex);
49 void ThumbnailWorker::doWork()
52 QString path = getPath();
53 if (!path.isEmpty()) {
55 if (!pixmap.isNull()) {
57 double scaleX = 1.0 * size.width() / pixmap.width();
58 double scaleY = 1.0 * size.height() / pixmap.height();
59 double scaleFactor = qMin(scaleX, scaleY);
60 if (scaleFactor < 1) {
61 pixmap = pixmap.scaled(pixmap.size() * scaleFactor,
62 Qt::IgnoreAspectRatio,
63 Qt::SmoothTransformation);
65 emit resultReady(path, pixmap);
72 qDebug() << "ThumbnailWorker::doWork() finished.";