1 #include "thumbnailworker.h"
7 const int SLEEP_TIME = 100;
9 ///////////////////////////////////////////////////////////////////////////////
10 /// \brief ThumbnailWorker::ThumbnailWorker
14 ThumbnailWorker::ThumbnailWorker() :
20 ///////////////////////////////////////////////////////////////////////////////
21 /// \brief ThumbnailWorker::addPath
26 void ThumbnailWorker::addPath(const QString &path)
28 QMutexLocker locker(&m_mutex);
32 ///////////////////////////////////////////////////////////////////////////////
33 /// \brief ThumbnailWorker::clearPath
37 void ThumbnailWorker::clearPath()
39 QMutexLocker locker(&m_mutex);
43 ///////////////////////////////////////////////////////////////////////////////
44 /// \brief ThumbnailWorker::getPath
45 /// \return リストからパスを取得します。
47 QString ThumbnailWorker::getPath()
49 QMutexLocker locker(&m_mutex);
50 if (m_pathList.isEmpty()) {
53 return m_pathList.takeFirst();
56 ///////////////////////////////////////////////////////////////////////////////
57 /// \brief ThumbnailWorker::run
61 void ThumbnailWorker::run()
63 qDebug() << "ThumbnailWorker::run() enter.";
65 while (!isAborted()) {
66 QString path = getPath();
67 if (!path.isEmpty()) {
69 if (!pixmap.isNull()) {
71 double scaleX = 1.0 * size.width() / pixmap.width();
72 double scaleY = 1.0 * size.height() / pixmap.height();
73 double scaleFactor = qMin(scaleX, scaleY);
74 if (scaleFactor < 1) {
75 pixmap = pixmap.scaled(pixmap.size() * scaleFactor,
76 Qt::IgnoreAspectRatio,
77 Qt::SmoothTransformation);
79 emit resultReady(path, pixmap);
82 this->thread()->msleep(SLEEP_TIME);
86 qDebug() << "ThumbnailWorker::run() finished.";