19 #include <QWaitCondition> 50 : m_action(
action), m_priority(priority), m_notify(notify)
51 { m_images.append(im); }
78 using TaskPtr = QSharedPointer<ThumbTask>;
122 template <
class DBFS>
129 void ClearThumbs(
int devId,
const QString &
action);
130 QString DeleteThumbs(
const ImageList &images);
131 void CreateThumbnail(
const ImagePtrK &im,
133 bool notify =
false);
135 void PauseBackground(
bool pause);
145 {
return im.m_filePath.count(
'/') * 1000 + im.m_id; }
155 #endif // IMAGETHUMBS_H This is a wrapper around QThread that does several additional things.
static void RemoveTasks(ThumbQueue &queue, int devId)
ThumbThread< DBFS > * m_videoThread
Thread generating video previews.
Scanner background request.
QMultiMap< int, TaskPtr > ThumbQueue
A priority queue where 0 is highest priority.
ThumbQueue m_requestQ
Synchronises completed tasks.
ThumbQueue m_backgroundQ
Priority queue of background tasks.
void PauseBackground(bool pause)
Pauses or restarts processing of background tasks (scanner requests)
QSharedPointer< ImageItemK > ImagePtrK
ThumbTask(QString action, ImagePtrK im, int priority=kUrgentPriority, bool notify=false)
Construct request for a single image.
A generator worker thread.
bool m_notify
If true, a "THUMBNAIL_CREATED" event is broadcast.
A generator request that is queued.
bool m_doBackground
Whether to process background tasks.
Common types used by Gallery.
QString CreateThumbnail(ImagePtrK im, int thumbPriority)
Generate thumbnail for an image.
QList< ImagePtr > ImageList
DBFS & m_dbfs
Db/filesystem adapter.
Scanner request needed to complete a scan.
Client request to display an image thumbnail.
~ThumbThread()
Destructor.
int m_priority
Request reason/priority.
void cancel()
Clears all queues so that the thread will terminate.
ThumbTask(QString action, const ImageListK &list, int priority=kUrgentPriority, bool notify=false)
Construct request for a list of images/dirs.
Client request to display a directory thumbnail.
void AbortDevice(int devId, const QString &action)
Clears thumbnail request queue.
ThumbThread< DBFS > * m_imageThread
Thread generating picture thumbnails.
Represents a picture, video or directory.
void run() override
Handles thumbnail requests by priority.
DBFS & m_dbfs
Database/filesystem adapter.
ImageThumbPriority
Priority of a thumbnail request.
QWaitCondition m_taskDone
ThumbThread(const QString &name, DBFS *const dbfs)
Constructor.
QSharedPointer< ThumbTask > TaskPtr
QMutex m_mutex
Queue protection.
void Enqueue(const TaskPtr &task)
Queues a Create request.
QString m_action
Request action: Create, delete etc.
ImageListK m_images
Images for thumbnail task.
QList< ImagePtrK > ImageListK