![]() |
digiKam Developer Documentation
Professional Photo Management with the Power of Open Source
|
Public Member Functions | |
AutoCrop (DImg *const orgImage, QObject *const parent=nullptr) | |
Standard constructor with image container to parse. | |
QRect | autoInnerCrop () const |
Return inner crop area detected by startAnalyse(). | |
void | startAnalyse () override |
Perform auto-crop analyze to find best inner crop. | |
![]() | |
DImgThreadedAnalyser (DImg *const orgImage, QObject *const parent=nullptr, const QString &name=QString()) | |
Constructs an image ananlyser with all arguments (ready to use). | |
DImgThreadedAnalyser (QObject *const parent=nullptr, const QString &name=QString()) | |
Constructs a filter without argument. | |
![]() | |
DImgThreadedFilter (DImg *const orgImage, QObject *const parent, const QString &name=QString()) | |
Constructs a filter with all arguments (ready to use). | |
DImgThreadedFilter (QObject *const parent=nullptr, const QString &name=QString()) | |
Constructs a filter without argument. | |
virtual void | cancelFilter () |
Cancel the threaded computation. | |
const QString & | filterName () |
int | filterVersion () const |
DImg | getTargetImage () |
QList< int > | multithreadedSteps (int stop, int start=0) const |
This method return a list of steps to process parallelized operation in filter using QtConcurrents API. | |
virtual bool | parametersSuccessfullyRead () const |
Optional error handling for readParameters. | |
virtual QString | readParametersError (const FilterAction &actionThatFailed) const |
void | setFilterName (const QString &name) |
void | setFilterVersion (int version) |
Replaying a filter action: Set the filter version. | |
void | setOriginalImage (const DImg &orgImage) |
void | setupAndStartDirectly (const DImg &orgImage, DImgThreadedFilter *const master, int progressBegin=0, int progressEnd=100) |
Initializes the filter for use as a slave and directly starts computation (in-thread) | |
void | setupFilter (const DImg &orgImage) |
You need to call this and then start filter of you used the constructor not setting an original image. | |
virtual void | startFilter () |
Start the threaded computation. | |
virtual void | startFilterDirectly () |
Start computation of this filter, directly in this thread. | |
![]() | |
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 | 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 | signalFinished (bool success) |
Emitted when the computation has completed. | |
void | signalProgress (int progress) |
Emitted when progress info from the calculation is available. | |
void | signalStarted () |
This signal is emitted when image data is available and the computation has started. | |
![]() | |
void | finished () |
void | starting () |
Emitted if emitSignals is enabled. | |
![]() | |
DImgThreadedFilter (DImgThreadedFilter *const master, const DImg &orgImage, const DImg &destImage, int progressBegin=0, int progressEnd=100, const QString &name=QString()) | |
Support for chaining two filters as master and thread. | |
virtual void | cleanupFilter () |
Clean up filter data if necessary, called by stopComputation() method. | |
virtual void | initFilter () |
Start filter operation before threaded method. | |
void | initMaster () |
void | initSlave (DImgThreadedFilter *const master, int progressBegin=0, int progressEnd=100) |
Initialize the filter for use as a slave - reroutes progress info to master. | |
virtual int | modulateProgress (int progress) |
This method modulates the progress value from the 0..100 span to the span of this slave. | |
virtual void | postProgress (int progress) |
Emit progress info. | |
void | run () override |
List of threaded operations by filter. | |
void | setSlave (DImgThreadedFilter *const slave) |
Inform the master that there is currently a slave. | |
![]() | |
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) |
![]() | |
DImg | m_destImage |
Output image data. | |
DImgThreadedFilter * | m_master = nullptr |
The master of this slave filter. | |
QString | m_name |
Filter name. | |
DImg | m_orgImage |
Copy of original Image data. | |
int | m_progressBegin = 0 |
The progress span that a slave filter uses in the parent filter's progress. | |
int | m_progressCurrent = 0 |
To prevent signals bombarding with progress indicator value in postProgress(). | |
int | m_progressSpan = 0 |
DImgThreadedFilter * | m_slave = nullptr |
The current slave. | |
int | m_version = 1 |
bool | m_wasCancelled = false |
|
overridevirtual |
Use autoInnerCrop() to get computed area.
This would be done in 4 steps
Implements Digikam::DImgThreadedAnalyser.