digiKam Developer Documentation: Digikam::FilterActionFilter Class Reference

| digiKam Developer Documentation Professional Photo Management with the Power of Open Source

Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
Digikam::FilterActionFilter Class Reference
Inheritance diagram for Digikam::FilterActionFilter:

## Public Member Functions
| FilterActionFilter (QObject *const parent=nullptr)
| A meta-filter applying other filter according to a list of FilterActions.
void | addFilterAction (const FilterAction &action)
void | addFilterActions (const QList< FilterAction > &actions)
QList< FilterAction > | appliedFilterActions () const
bool | completelyApplied () const
| After the thread was run, you can find out if application was successful.
FilterAction | failedAction () const
int | failedActionIndex () const
QString | failedActionMessage () const
FilterAction | filterAction () override
| These methods do not make sense here.
QList< FilterAction > | filterActions () const
QString | filterIdentifier () const override
bool | isComplexAction () const
bool | isReproducible () const
bool | isSupported () const
void | readParameters (const FilterAction &) override
void | setContinueOnError (bool cont)
| Per default, the filter will stop when it encounters an unsupported action.
void | setFilterAction (const FilterAction &action)
void | setFilterActions (const QList< FilterAction > &actions)
| Set or add to existing list of the given filter actions.
Public Member Functions inherited from Digikam::DImgThreadedFilter
| 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.
virtual QList< int > | supportedVersions () const
Public Member Functions inherited from Digikam::DynamicThread
| 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

## Protected Member Functions
void | filterImage () override
| Main image filter method.
Protected Member Functions inherited from Digikam::DImgThreadedFilter
| 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.
virtual void | prepareDestImage ()
void | run () override
| List of threaded operations by filter.
void | setSlave (DImgThreadedFilter *const slave)
| Inform the master that there is currently a slave.
Protected Member Functions inherited from Digikam::DynamicThread
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)

## Additional Inherited Members
Public Types inherited from Digikam::DynamicThread
enum | State { Inactive , Scheduled , Running , Deactivating }
Public Slots inherited from Digikam::DynamicThread
void | start ()
void | stop ()
| Stop computation, sets the running flag to false.
void | wait ()
| Waits until the thread finishes.
Signals inherited from Digikam::DImgThreadedFilter
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.
Signals inherited from Digikam::DynamicThread
void | finished ()
void | starting ()
| Emitted if emitSignals is enabled.
Protected Attributes inherited from Digikam::DImgThreadedFilter
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

## Member Function Documentation

## ◆ appliedFilterActions()

QList< FilterAction > Digikam::FilterActionFilter::appliedFilterActions | ( |  | ) | const

Returns
  the list of applied filter actions. This is probably identical to filterActions, but it can differ in some situations:

- If completelyApplied() is false, it will contain only the successful actions
- The list is regenerated by the filters. If filterActions contains actions with an older version, still supported by the filter, the filter will now possibly return the newer, current version

## ◆ completelyApplied()

bool Digikam::FilterActionFilter::completelyApplied | ( |  | ) | const

A precondition is that at least isComplexAction() and isSupported() returns true. If all filters applied cleanly, completelyApplied() returns true. appliedActions() returns all applied actions, if completelyApplied(), the same as filterActions(). If not completelyApplied, failedAction() returns the action that failed, failedActionIndex its index in filterActions(), and failedActionMessage an optional error message.

Note
  The finished state (true) does not mean that completelyApplied() is also true.

## ◆ filterAction()

FilterAction Digikam::FilterActionFilter::filterAction | ( |  | ) |
| inlineoverridevirtual

Use filterActions.

Implements Digikam::DImgThreadedFilter.

## ◆ filterIdentifier()

QString Digikam::FilterActionFilter::filterIdentifier | ( |  | ) | const
| inlineoverridevirtual

Returns
  The identifier for this filter in the image history.

Implements Digikam::DImgThreadedFilter.

## ◆ filterImage()

void Digikam::FilterActionFilter::filterImage | ( |  | ) |
| overrideprotectedvirtual

Override in subclass.

Implements Digikam::DImgThreadedFilter.

## ◆ isComplexAction()

bool Digikam::FilterActionFilter::isComplexAction | ( |  | ) | const

Returns
  True if all FilterActions are reproducible or are ComplexFilters. That means the identical result may not be reproducible, but a sufficiently similar result may be available and apply will probably complete.

## ◆ isReproducible()

bool Digikam::FilterActionFilter::isReproducible | ( |  | ) | const

Returns
  True if all FilterActions are reproducible

## ◆ isSupported()

bool Digikam::FilterActionFilter::isSupported | ( |  | ) | const

Returns
  true if all actions are supported.

## ◆ readParameters()

void Digikam::FilterActionFilter::readParameters | ( | const FilterAction & |  | ) |
| inlineoverridevirtual

Implements Digikam::DImgThreadedFilter.

## ◆ setContinueOnError()

void Digikam::FilterActionFilter::setContinueOnError | ( | bool | cont | ) |

If you want it to continue, set this to true. Only the last occurred error will then be reported.