![]() |
digiKam Developer Documentation
Professional Photo Management with the Power of Open Source
|
Public Member Functions | |
SharedLoadSaveThread (QObject *const parent=nullptr) | |
void | loadShared (const LoadingDescription &description, AccessMode mode, LoadingPolicy policy=LoadingPolicyAppend) |
![]() | |
ManagedLoadSaveThread (QObject *const parent=nullptr) | |
virtual void | load (const LoadingDescription &description) override |
Append a task to load the given file to the task list. | |
void | load (const LoadingDescription &description, LoadingPolicy policy) |
LoadingPolicy | loadingPolicy () const |
virtual void | save (const DImg &image, const QString &filePath, const QString &format) override |
Append a task to save the image to the task list. | |
void | setLoadingPolicy (LoadingPolicy policy) |
Set the loading policy. | |
void | setTerminationPolicy (TerminationPolicy terminationPolicy) |
void | stopAllTasks () |
void | stopLoading (const LoadingDescription &desc, LoadingTaskFilter filter=LoadingTaskFilterAll) |
Same than previous method, but Stop and remove tasks filtered by LoadingDescription. | |
void | stopLoading (const QString &filePath=QString(), LoadingTaskFilter filter=LoadingTaskFilterAll) |
Stop and remove tasks filtered by filePath and policy. | |
void | stopSaving (const QString &filePath=QString()) |
Stop and remove saving tasks filtered by filePath. | |
TerminationPolicy | terminationPolicy () const |
![]() | |
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 |
void | loadingProgress (const LoadingDescription &loadingDescription, float progress) override |
void | moreCompleteLoadingAvailable (const LoadingDescription &oldLoadingDescription, const LoadingDescription &newLoadingDescription) override |
virtual bool | querySendNotifyEvent () const |
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 |
Additional Inherited Members | |
![]() | |
enum | LoadingMode { LoadingModeNormal , LoadingModeShared } |
used by SharedLoadSaveThread only More... | |
enum | LoadingPolicy { LoadingPolicyFirstRemovePrevious , LoadingPolicyPrepend , LoadingPolicySimplePrepend , LoadingPolicyAppend , LoadingPolicySimpleAppend , LoadingPolicyPreload } |
enum | LoadingTaskFilter { LoadingTaskFilterAll , LoadingTaskFilterPreloading } |
enum | TerminationPolicy { TerminationPolicyTerminateLoading , TerminationPolicyTerminatePreloading , TerminationPolicyWait , TerminationPolicyTerminateAll } |
![]() | |
enum | AccessMode { AccessModeRead , AccessModeReadWrite } |
used by SharedLoadSaveThread only More... | |
enum | NotificationPolicy { NotificationPolicyDirect , NotificationPolicyTimeLimited } |
![]() | |
enum | State { Inactive , Scheduled , Running , Deactivating } |
![]() | |
void | start () |
void | stop () |
Stop computation, sets the running flag to false. | |
void | wait () |
Waits until the thread finishes. | |
![]() | |
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. | |
![]() | |
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) |
![]() | |
void | load (const LoadingDescription &description, LoadingMode loadingMode, AccessMode mode=AccessModeReadWrite) |
void | load (const LoadingDescription &description, LoadingMode loadingMode, LoadingPolicy policy, AccessMode mode=AccessModeReadWrite) |
void | loadPreview (const LoadingDescription &description, LoadingPolicy policy) |
void | loadThumbnail (const LoadingDescription &description) |
void | preloadThumbnail (const LoadingDescription &description) |
void | preloadThumbnailGroup (const QList< LoadingDescription > &descriptions) |
void | prependThumbnailGroup (const QList< LoadingDescription > &descriptions) |
void | shutDown () override |
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 | 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. | |
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) |
![]() | |
LoadingPolicy | m_loadingPolicy = LoadingPolicyAppend |
TerminationPolicy | m_terminationPolicy = TerminationPolicyTerminateLoading |
![]() | |
LoadSaveTask * | m_currentTask = nullptr |
QMutex | m_mutex |
NotificationPolicy | m_notificationPolicy = NotificationPolicyTimeLimited |
QList< LoadSaveTask * > | m_todo |