![]() |
digiKam Developer Documentation
Professional Photo Management with the Power of Open Source
|
Public Types | |
enum | AccessMode { AccessModeRead , AccessModeReadWrite } |
used by SharedLoadSaveThread only More... | |
enum | NotificationPolicy { NotificationPolicyDirect , NotificationPolicyTimeLimited } |
![]() | |
enum | State { Inactive , Scheduled , Running , Deactivating } |
Signals | |
void | signalImageLoaded (const LoadingDescription &loadingDescription, const DImg &img) |
This signal is emitted when the loading process has finished. | |
void | signalImageSaved (const QString &filePath, bool success) |
void | signalImageStartedLoading (const LoadingDescription &loadingDescription) |
All signals are delivered to the thread from where the LoadSaveThread object has been created. | |
void | signalImageStartedSaving (const QString &filePath) |
void | signalLoadingProgress (const LoadingDescription &loadingDescription, float progress) |
This signal is emitted whenever new progress info is available and the notification policy allows emitting the signal. | |
void | signalMoreCompleteLoadingAvailable (const LoadingDescription &oldLoadingDescription, const LoadingDescription &newLoadingDescription) |
This signal is emitted if. | |
void | signalQImageThumbnailLoaded (const LoadingDescription &loadingDescription, const QImage &img) |
void | signalSavingProgress (const QString &filePath, float progress) |
![]() | |
void | finished () |
void | starting () |
Emitted if emitSignals is enabled. | |
Public Member Functions | |
LoadSaveThread (QObject *const parent=nullptr) | |
~LoadSaveThread () override | |
Destructor: The thread will execute all pending tasks and wait for this upon destruction. | |
void | imageLoaded (const LoadingDescription &loadingDescription, const DImg &img) override |
void | imageSaved (const QString &filePath, bool success) override |
void | imageStartedLoading (const LoadingDescription &loadingDescription) override |
void | imageStartedSaving (const QString &filePath) override |
virtual void | load (const LoadingDescription &description) |
Append a task to load the given file to the task list. | |
void | loadingProgress (const LoadingDescription &loadingDescription, float progress) override |
void | moreCompleteLoadingAvailable (const LoadingDescription &oldLoadingDescription, const LoadingDescription &newLoadingDescription) override |
virtual bool | querySendNotifyEvent () const |
virtual void | save (const DImg &image, const QString &filePath, const QString &format) |
Append a task to save the image to the task list. | |
void | savingProgress (const QString &filePath, float progress) override |
void | setNotificationPolicy (NotificationPolicy notificationPolicy) |
virtual void | taskHasFinished () |
void | thumbnailLoaded (const LoadingDescription &loadingDescription, const QImage &img) override |
![]() | |
DynamicThread (QObject *const parent=nullptr) | |
This class extends QRunnable, so you have to reimplement virtual void run(). | |
~DynamicThread () override | |
The destructor calls stop() and wait(), but if you, in your destructor, delete any data that is accessed by your run() method, you must call stop() and wait() before yourself. | |
bool | isFinished () const |
bool | isRunning () const |
QThread::Priority | priority () const |
void | setEmitSignals (bool emitThem) |
void | setPriority (QThread::Priority priority) |
Sets the priority for this dynamic thread. | |
State | state () const |
Static Public Member Functions | |
static int | exifOrientation (const QString &filePath, const DMetadata &metadata, bool isRaw, bool fromRawEmbeddedPreview) |
Retrieves the Exif orientation, either from the info provider if available, or from the metadata. | |
static LoadSaveFileInfoProvider * | infoProvider () |
static void | setInfoProvider (LoadSaveFileInfoProvider *const infoProvider) |
Protected Member Functions | |
void | notificationReceived () |
void | run () override |
Implement this pure virtual function in your subclass. | |
![]() | |
bool | runningFlag () const volatile |
In you run() method, you shall regularly check for runningFlag() and cleanup and return if false. | |
virtual void | shutDown () |
If you are deleting data in your destructor which is accessed from the thread, do one of the following from your destructor to guarantee a safe shutdown: 1) Call this method 2) Call stop() and wait(), knowing that nothing will call start() anymore after this 3) Be sure the thread will never be running at destruction. | |
void | start (QMutexLocker< QMutex > &locker) |
Doing the same as start(), stop() and wait above, provide it with a locked QMutexLocker on mutex(). | |
void | stop (const QMutexLocker< QMutex > &locker) |
QMutex * | threadMutex () const |
This is the non-recursive mutex used to protect state variables and waiting in this class. | |
void | wait (QMutexLocker< QMutex > &locker) |
Protected Attributes | |
LoadSaveTask * | m_currentTask = nullptr |
QMutex | m_mutex |
NotificationPolicy | m_notificationPolicy = NotificationPolicyTimeLimited |
QList< LoadSaveTask * > | m_todo |
Additional Inherited Members | |
![]() | |
void | start () |
void | stop () |
Stop computation, sets the running flag to false. | |
void | wait () |
Waits until the thread finishes. | |
|
overridevirtual |
Implements Digikam::LoadSaveNotifier.
|
overridevirtual |
Implements Digikam::LoadSaveNotifier.
|
overridevirtual |
Implements Digikam::LoadSaveNotifier.
|
overridevirtual |
Implements Digikam::LoadSaveNotifier.
|
virtual |
Reimplemented in Digikam::ManagedLoadSaveThread, Digikam::PreviewLoadThread, and Digikam::ThumbnailLoadThread.
|
overridevirtual |
Implements Digikam::LoadSaveNotifier.
|
overridevirtual |
Implements Digikam::LoadSaveNotifier.
|
overrideprotectedvirtual |
Implements Digikam::DynamicThread.
|
virtual |
Reimplemented in Digikam::ManagedLoadSaveThread.
|
overridevirtual |
Implements Digikam::LoadSaveNotifier.
|
signal |
If the process failed, img is null.
|
signal |
This thread must use its event loop to get the signals. You must connect to these signals with Qt::AutoConnection (default) or Qt::QueuedConnection. This signal is emitted when the loading process begins.
|
signal |
No progress info will be sent for preloaded images (ManagedLoadSaveThread).
|
signal |
|
overridevirtual |
Implements Digikam::LoadSaveNotifier.
Reimplemented in Digikam::ThumbnailLoadThread.