digiKam
|
Classes | |
class | DefaultFilterAction |
Public Types | |
enum | State { Inactive , Scheduled , Running , Deactivating } |
Public Slots | |
void | start () |
void | stop () |
void | wait () |
Signals | |
void | finished () |
void | finished (bool success) |
void | progress (int progress) |
void | started () |
void | starting () |
Public Member Functions | |
virtual void | cancelFilter () |
DImgThreadedFilter (DImg *const orgImage, QObject *const parent, const QString &name=QString()) | |
DImgThreadedFilter (QObject *const parent=nullptr, const QString &name=QString()) | |
virtual FilterAction | filterAction ()=0 |
virtual QString | filterIdentifier () const =0 |
const QString & | filterName () |
int | filterVersion () const |
DImg | getTargetImage () |
bool | isFinished () const |
bool | isRunning () const |
QList< int > | multithreadedSteps (int stop, int start=0) const |
virtual bool | parametersSuccessfullyRead () const |
QThread::Priority | priority () const |
virtual void | readParameters (const FilterAction &)=0 |
virtual QString | readParametersError (const FilterAction &actionThatFailed) const |
void | setEmitSignals (bool emitThem) |
void | setFilterName (const QString &name) |
void | setFilterVersion (int version) |
void | setOriginalImage (const DImg &orgImage) |
void | setPriority (QThread::Priority priority) |
void | setupAndStartDirectly (const DImg &orgImage, DImgThreadedFilter *const master, int progressBegin=0, int progressEnd=100) |
void | setupFilter (const DImg &orgImage) |
virtual void | startFilter () |
virtual void | startFilterDirectly () |
State | state () const |
virtual QList< int > | supportedVersions () const |
~DImgThreadedFilter () override | |
Protected Member Functions | |
virtual void | cleanupFilter () |
DImgThreadedFilter (DImgThreadedFilter *const master, const DImg &orgImage, const DImg &destImage, int progressBegin=0, int progressEnd=100, const QString &name=QString()) | |
virtual void | filterImage ()=0 |
virtual void | initFilter () |
void | initMaster () |
void | initSlave (DImgThreadedFilter *const master, int progressBegin=0, int progressEnd=100) |
virtual int | modulateProgress (int progress) |
void | postProgress (int progress) |
virtual void | prepareDestImage () |
void | run () override |
bool | runningFlag () const volatile |
void | setSlave (DImgThreadedFilter *const slave) |
void | shutDown () |
void | start (QMutexLocker &locker) |
void | stop (QMutexLocker &locker) |
QMutex * | threadMutex () const |
void | wait (QMutexLocker &locker) |
Protected Attributes | |
DImg | m_destImage |
DImgThreadedFilter * | m_master |
QString | m_name |
DImg | m_orgImage |
int | m_progressBegin |
int | m_progressCurrent |
To prevent signals bombarding with progress indicator value in postProgress(). More... | |
int | m_progressSpan |
DImgThreadedFilter * | m_slave |
int | m_version |
bool | m_wasCancelled |
|
inherited |
|
explicit |
Constructs a filter without argument. You need to call setupFilter() and startFilter() to start the threaded computation. To run filter without to use multithreading, call startFilterDirectly().
References initMaster(), setFilterName(), and setOriginalImage().
Digikam::DImgThreadedFilter::DImgThreadedFilter | ( | DImg *const | orgImage, |
QObject *const | parent, | ||
const QString & | name = QString() |
||
) |
Constructs a filter with all arguments (ready to use). The given original image will be copied. You need to call startFilter() to start the threaded computation. To run filter without to use multithreading, call startFilterDirectly().
References Digikam::DImg::copyImageData(), initMaster(), setFilterName(), and setOriginalImage().
|
override |
References cancelFilter(), m_master, and setSlave().
|
protected |
Support for chaining two filters as master and thread.
Do not call startFilter() or startFilterDirectly() on this. The computation will be started from initFilter() which you must call from the derived class constructor.
Constructor for slave mode: Constructs a new slave filter with the specified master. The filter will be executed in the current thread. orgImage and destImage will not be copied. Note that the slave is still free to reallocate his destImage. progressBegin and progressEnd can indicate the progress span that the slave filter uses in the parent filter's progress. Any derived filter class that is publicly available to other filters should implement an additional constructor using this constructor.
References initSlave(), setFilterName(), and setOriginalImage().
|
virtual |
Cancel the threaded computation.
Reimplemented in Digikam::GreycstorationFilter.
References cleanupFilter(), Digikam::DynamicThread::isRunning(), m_slave, m_wasCancelled, Digikam::DynamicThread::stop(), and Digikam::DynamicThread::wait().
Referenced by DigikamBqmRestorationPlugin::RedEyeCorrection::cancel(), Digikam::GreycstorationFilter::cancelFilter(), Digikam::EditorToolThreaded::slotAbort(), Digikam::PreviewThreadWrapper::stopFilters(), Digikam::AntiVignettingFilter::~AntiVignettingFilter(), Digikam::AutoLevelsFilter::~AutoLevelsFilter(), Digikam::BCGFilter::~BCGFilter(), Digikam::BlurFilter::~BlurFilter(), Digikam::BlurFXFilter::~BlurFXFilter(), Digikam::BorderFilter::~BorderFilter(), Digikam::BWSepiaFilter::~BWSepiaFilter(), Digikam::CBFilter::~CBFilter(), Digikam::CharcoalFilter::~CharcoalFilter(), Digikam::ColorFXFilter::~ColorFXFilter(), Digikam::CurvesFilter::~CurvesFilter(), ~DImgThreadedFilter(), Digikam::DistortionFXFilter::~DistortionFXFilter(), Digikam::EmbossFilter::~EmbossFilter(), Digikam::FilmFilter::~FilmFilter(), Digikam::FilmGrainFilter::~FilmGrainFilter(), Digikam::FreeRotationFilter::~FreeRotationFilter(), Digikam::HotPixelFixer::~HotPixelFixer(), Digikam::HSLFilter::~HSLFilter(), Digikam::IccTransformFilter::~IccTransformFilter(), Digikam::InfraredFilter::~InfraredFilter(), Digikam::InvertFilter::~InvertFilter(), Digikam::LensDistortionFilter::~LensDistortionFilter(), Digikam::LensFunFilter::~LensFunFilter(), Digikam::LevelsFilter::~LevelsFilter(), Digikam::LocalContrastFilter::~LocalContrastFilter(), Digikam::MixerFilter::~MixerFilter(), Digikam::NormalizeFilter::~NormalizeFilter(), Digikam::NRFilter::~NRFilter(), Digikam::OilPaintFilter::~OilPaintFilter(), Digikam::RainDropFilter::~RainDropFilter(), DigikamRawImportNativePlugin::RawPostProcessing::~RawPostProcessing(), Digikam::RawProcessingFilter::~RawProcessingFilter(), Digikam::RedEyeCorrectionFilter::~RedEyeCorrectionFilter(), Digikam::RefocusFilter::~RefocusFilter(), Digikam::SharpenFilter::~SharpenFilter(), Digikam::ShearFilter::~ShearFilter(), Digikam::StretchFilter::~StretchFilter(), Digikam::TextureFilter::~TextureFilter(), Digikam::TonalityFilter::~TonalityFilter(), Digikam::UnsharpMaskFilter::~UnsharpMaskFilter(), and Digikam::WBFilter::~WBFilter().
|
inlineprotectedvirtual |
Clean up filter data if necessary, called by stopComputation() method. Override in subclass.
Referenced by cancelFilter().
|
pure virtual |
Returns the action description corresponding to currently set options.
Implemented in Digikam::WBFilter, Digikam::ShearFilter, Digikam::FreeRotationFilter, Digikam::ContentAwareFilter, Digikam::UnsharpMaskFilter, Digikam::SharpenFilter, Digikam::RefocusFilter, Digikam::RedEyeCorrectionFilter, Digikam::RawProcessingFilter, Digikam::NRFilter, Digikam::LevelsFilter, Digikam::LensFunFilter, Digikam::LensDistortionFilter, Digikam::AntiVignettingFilter, Digikam::LocalContrastFilter, Digikam::IccTransformFilter, Digikam::HSLFilter, Digikam::HotPixelFixer, Digikam::GreycstorationFilter, Digikam::RainDropFilter, Digikam::OilPaintFilter, Digikam::InvertFilter, Digikam::FilmGrainFilter, Digikam::EmbossFilter, Digikam::DistortionFXFilter, Digikam::ColorFXFilter, Digikam::CharcoalFilter, Digikam::BlurFXFilter, Digikam::BlurFilter, Digikam::FilterActionFilter, Digikam::FilmFilter, Digikam::TextureFilter, Digikam::BorderFilter, Digikam::CurvesFilter, Digikam::CBFilter, Digikam::TonalityFilter, Digikam::MixerFilter, Digikam::InfraredFilter, Digikam::BWSepiaFilter, Digikam::BCGFilter, Digikam::StretchFilter, Digikam::NormalizeFilter, Digikam::EqualizeFilter, Digikam::AutoLevelsFilter, and Digikam::AutoExpoFilter.
Referenced by Digikam::BatchTool::applyFilter(), Digikam::BatchTool::applyFilterChangedProperties(), and DigikamEditorProfileConversionToolPlugin::ProfileConversionTool::fastConversion().
|
pure virtual |
Return the identifier for this filter in the image history.
Implemented in Digikam::WBFilter, Digikam::ShearFilter, Digikam::FreeRotationFilter, Digikam::ContentAwareFilter, Digikam::UnsharpMaskFilter, Digikam::SharpenFilter, Digikam::RefocusFilter, Digikam::RedEyeCorrectionFilter, Digikam::RawProcessingFilter, Digikam::NRFilter, Digikam::LevelsFilter, Digikam::LensFunFilter, Digikam::LensDistortionFilter, Digikam::AntiVignettingFilter, Digikam::LocalContrastFilter, Digikam::IccTransformFilter, Digikam::HSLFilter, Digikam::HotPixelFixer, Digikam::GreycstorationFilter, Digikam::RainDropFilter, Digikam::OilPaintFilter, Digikam::InvertFilter, Digikam::FilmGrainFilter, Digikam::EmbossFilter, Digikam::DistortionFXFilter, Digikam::ColorFXFilter, Digikam::CharcoalFilter, Digikam::BlurFXFilter, Digikam::BlurFilter, Digikam::FilterActionFilter, Digikam::FilmFilter, Digikam::TextureFilter, Digikam::BorderFilter, Digikam::CurvesFilter, Digikam::CBFilter, Digikam::TonalityFilter, Digikam::MixerFilter, Digikam::InfraredFilter, Digikam::BWSepiaFilter, Digikam::BCGFilter, Digikam::StretchFilter, Digikam::NormalizeFilter, Digikam::EqualizeFilter, Digikam::AutoLevelsFilter, and Digikam::AutoExpoFilter.
|
protectedpure virtual |
Main image filter method. Override in subclass.
Implemented in Digikam::WBFilter, Digikam::RawProcessingFilter, Digikam::IccTransformFilter, and Digikam::FilterActionFilter.
Referenced by startFilterDirectly().
|
inline |
int Digikam::DImgThreadedFilter::filterVersion | ( | ) | const |
References m_version.
|
signalinherited |
Referenced by Digikam::ThumbnailImageCatcher::Private::harvest(), startFilter(), and startFilterDirectly().
|
signal |
Emitted when the computation has completed.
success | True if computation finished without interruption on valid data False if the thread was canceled, or no data is available. |
|
inline |
|
protectedvirtual |
Start filter operation before threaded method. Must be called by your constructor.
References m_master, prepareDestImage(), and startFilterDirectly().
Referenced by Digikam::AntiVignettingFilter::AntiVignettingFilter(), Digikam::AutoExpoFilter::AutoExpoFilter(), Digikam::AutoLevelsFilter::AutoLevelsFilter(), Digikam::BCGFilter::BCGFilter(), Digikam::BlurFilter::BlurFilter(), Digikam::BlurFXFilter::BlurFXFilter(), Digikam::BorderFilter::BorderFilter(), Digikam::BWSepiaFilter::BWSepiaFilter(), Digikam::CBFilter::CBFilter(), Digikam::CharcoalFilter::CharcoalFilter(), Digikam::ColorFXFilter::ColorFXFilter(), Digikam::ContentAwareFilter::ContentAwareFilter(), Digikam::CurvesFilter::CurvesFilter(), Digikam::DistortionFXFilter::DistortionFXFilter(), Digikam::EmbossFilter::EmbossFilter(), Digikam::EqualizeFilter::EqualizeFilter(), Digikam::FilmFilter::FilmFilter(), Digikam::FilmGrainFilter::FilmGrainFilter(), Digikam::FilterActionFilter::FilterActionFilter(), Digikam::FreeRotationFilter::FreeRotationFilter(), Digikam::HotPixelFixer::HotPixelFixer(), Digikam::HSLFilter::HSLFilter(), Digikam::IccTransformFilter::IccTransformFilter(), Digikam::InfraredFilter::InfraredFilter(), Digikam::InvertFilter::InvertFilter(), Digikam::LensDistortionFilter::LensDistortionFilter(), Digikam::LensFunFilter::LensFunFilter(), Digikam::LevelsFilter::LevelsFilter(), Digikam::LocalContrastFilter::LocalContrastFilter(), Digikam::MixerFilter::MixerFilter(), Digikam::NormalizeFilter::NormalizeFilter(), Digikam::NRFilter::NRFilter(), Digikam::OilPaintFilter::OilPaintFilter(), Digikam::RainDropFilter::RainDropFilter(), DigikamRawImportNativePlugin::RawPostProcessing::RawPostProcessing(), Digikam::RawProcessingFilter::RawProcessingFilter(), Digikam::RedEyeCorrectionFilter::RedEyeCorrectionFilter(), Digikam::RefocusFilter::RefocusFilter(), setupFilter(), Digikam::SharpenFilter::SharpenFilter(), Digikam::ShearFilter::ShearFilter(), Digikam::StretchFilter::StretchFilter(), Digikam::TextureFilter::TextureFilter(), Digikam::TonalityFilter::TonalityFilter(), Digikam::UnsharpMaskFilter::UnsharpMaskFilter(), and Digikam::WBFilter::WBFilter().
|
protected |
References m_master, m_progressBegin, m_progressCurrent, m_progressSpan, and m_slave.
Referenced by DImgThreadedFilter().
|
protected |
Initialize the filter for use as a slave - reroutes progress info to master. Note: Computation will be started from setupFilter().
References m_master, m_progressBegin, m_progressCurrent, m_progressSpan, m_slave, and setSlave().
Referenced by DImgThreadedFilter(), Digikam::RawProcessingFilter::setObserver(), and setupAndStartDirectly().
|
inherited |
References Digikam::DynamicThread::Inactive.
|
inherited |
References Digikam::DynamicThread::Deactivating, Digikam::DynamicThread::Running, and Digikam::DynamicThread::Scheduled.
Referenced by cancelFilter(), and Digikam::ImageHistogram::isCalculating().
|
protectedvirtual |
This method modulates the progress value from the 0..100 span to the span of this slave. Called by postProgress if master is not null.
References m_progressBegin, m_progressSpan, and progress().
Referenced by postProgress(), and Digikam::RawProcessingFilter::postProgress().
QList< int > Digikam::DImgThreadedFilter::multithreadedSteps | ( | int | stop, |
int | start = 0 |
||
) | const |
This method return a list of steps to process parallelized operation in filter using QtConcurrents API. Usually, start and stop are rows or columns from image to process. By default, whole image will be processed and start value is 0. In this case stop will be last row or column to process. Between range [start,stop], this method will divide by equal steps depending of number of CPU cores available. To be sure that all values will be processed, in case of CPU core division give rest, the last step compensate the difference. See Blur filter loop implementation for example to see how to use this method with QtConcurrents API.
References Digikam::DynamicThread::start(), and Digikam::DynamicThread::stop().
|
virtual |
Optional: error handling for readParameters. When readParameters() has been called, this method will return true if the call was successful, and false if not. If returning false, readParametersError() will give an error message. The default implementation always returns success. You only need to reimplement when a filter is likely to fail in a different environment, e.g. depending on availability of installed files. These methods have an undefined return value if readParameters() was not called previously.
Reimplemented in Digikam::IccTransformFilter.
|
protected |
Emit progress info.
References m_master, m_progressCurrent, modulateProgress(), postProgress(), and progress().
Referenced by Digikam::FilterActionFilter::filterImage(), postProgress(), Digikam::RawProcessingFilter::postProgress(), Digikam::ContentAwareFilter::progressCallback(), Digikam::IccTransformFilter::progressInfo(), Digikam::NREstimate::startAnalyse(), and Digikam::AutoCrop::startAnalyse().
|
protectedvirtual |
References Digikam::DImg::hasAlpha(), Digikam::DImg::height, Digikam::DImg::isNull(), m_destImage, m_orgImage, Digikam::DImg::reset(), Digikam::DImg::sixteenBit, and Digikam::DImg::width.
Referenced by initFilter().
|
inherited |
Referenced by Digikam::DynamicThread::setPriority().
|
signal |
Emitted when progress info from the calculation is available.
Referenced by Digikam::FilterActionFilter::filterImage(), modulateProgress(), postProgress(), Digikam::ContentAwareFilter::progressCallback(), and Digikam::IccTransformFilter::progressInfo().
|
pure virtual |
Implemented in Digikam::WBFilter, Digikam::ShearFilter, Digikam::FreeRotationFilter, Digikam::ContentAwareFilter, Digikam::UnsharpMaskFilter, Digikam::SharpenFilter, Digikam::RefocusFilter, Digikam::RawProcessingFilter, Digikam::NRFilter, Digikam::LevelsFilter, Digikam::LensFunFilter, Digikam::LensDistortionFilter, Digikam::AntiVignettingFilter, Digikam::LocalContrastFilter, Digikam::IccTransformFilter, Digikam::HSLFilter, Digikam::HotPixelFixer, Digikam::GreycstorationFilter, Digikam::RainDropFilter, Digikam::OilPaintFilter, Digikam::InvertFilter, Digikam::FilmGrainFilter, Digikam::EmbossFilter, Digikam::DistortionFXFilter, Digikam::ColorFXFilter, Digikam::CharcoalFilter, Digikam::BlurFXFilter, Digikam::BlurFilter, Digikam::FilmFilter, Digikam::TextureFilter, Digikam::BorderFilter, Digikam::CurvesFilter, Digikam::CBFilter, Digikam::TonalityFilter, Digikam::MixerFilter, Digikam::InfraredFilter, Digikam::BWSepiaFilter, Digikam::BCGFilter, Digikam::StretchFilter, Digikam::NormalizeFilter, Digikam::EqualizeFilter, Digikam::AutoLevelsFilter, Digikam::AutoExpoFilter, and Digikam::FilterActionFilter.
|
virtual |
Reimplemented in Digikam::IccTransformFilter.
|
overrideprotectedvirtual |
List of threaded operations by filter.
Implements Digikam::DynamicThread.
References startFilterDirectly().
|
protectedinherited |
In you run() method, you shall regularly check for runningFlag() and cleanup and return if false.
Referenced by Digikam::ImageHistogram::calculate(), Digikam::RawProcessingFilter::continueQuery(), Digikam::LoadSaveThread::run(), Digikam::ScanStateFilter::run(), and Digikam::NREstimate::startAnalyse().
|
inherited |
void Digikam::DImgThreadedFilter::setFilterName | ( | const QString & | name | ) |
References m_name.
Referenced by DImgThreadedFilter(), and DigikamRawImportNativePlugin::RawPostProcessing::RawPostProcessing().
void Digikam::DImgThreadedFilter::setFilterVersion | ( | int | version | ) |
Replaying a filter action: Set the filter version. A filter may implement different versions, to preserve image history when the algorithm is changed. Any value set here must be contained in supportedVersions, otherwise this call will be ignored. Default value is 1. (Note: If you intend to record a filter action, please look at FilterAction's m_version)
References m_version, and supportedVersions().
void Digikam::DImgThreadedFilter::setOriginalImage | ( | const DImg & | orgImage | ) |
|
inherited |
Sets the priority for this dynamic thread. Can be set anytime. If the thread is currently not running, the priority will be set when it is run next time. When you set QThread::InheritPriority (default), the priority is not changed but inherited from the thread pool.
References Digikam::DynamicThread::priority().
Referenced by Digikam::FacePipeline::Private::applyPriority(), and Digikam::FacePipeline::Private::createThumbnailLoadThread().
|
protected |
Inform the master that there is currently a slave. At destruction of the slave, call with slave=0.
References m_slave.
Referenced by initSlave(), and ~DImgThreadedFilter().
void Digikam::DImgThreadedFilter::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)
References initSlave(), and setupFilter().
void Digikam::DImgThreadedFilter::setupFilter | ( | const DImg & | orgImage | ) |
You need to call this and then start filter of you used the constructor not setting an original image. The original image's data will not be copied.
References initFilter(), and setOriginalImage().
Referenced by DigikamRAWDImgPlugin::DImgRAWLoader::postProcess(), and setupAndStartDirectly().
|
protectedinherited |
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. Note: This irrevocably stops this object. Note: It is not sufficient that your parent class does this. Calling this method, or providing one of the above mentioned equivalent guarantees, must be done by every single last class in the hierarchy with an implemented destructor deleting data. (the base class destructor is always called after the derived class)
References Digikam::DynamicThread::stop(), and Digikam::DynamicThread::wait().
Referenced by Digikam::ManagedLoadSaveThread::shutDown(), Digikam::DynamicThread::~DynamicThread(), and Digikam::LoadSaveThread::~LoadSaveThread().
|
slotinherited |
Referenced by Digikam::ImageHistogram::calculateInThread(), Digikam::FacePreviewLoader::checkRestart(), Digikam::ImageHistogram::getCount(), Digikam::ImageHistogram::getMaximum(), Digikam::ImageHistogram::getMean(), Digikam::ImageHistogram::getMedian(), Digikam::ImageHistogram::getStdDev(), Digikam::LoadSaveThread::load(), Digikam::ManagedLoadSaveThread::load(), Digikam::ManagedLoadSaveThread::loadThumbnail(), multithreadedSteps(), Digikam::ManagedLoadSaveThread::preloadThumbnail(), Digikam::ManagedLoadSaveThread::preloadThumbnailGroup(), Digikam::ManagedLoadSaveThread::prependThumbnailGroup(), Digikam::ScanStateFilter::process(), Digikam::LoadSaveThread::save(), Digikam::ManagedLoadSaveThread::save(), and startFilter().
|
protectedinherited |
Doing the same as start(), stop() and wait above, provide it with a locked QMutexLocker on mutex(). Note the start() will unlock and relock for scheduling once, after state change.
References Digikam::ThreadManager::instance(), and Digikam::ThreadManager::schedule().
|
signal |
This signal is emitted when image data is available and the computation has started.
Referenced by startFilterDirectly().
|
virtual |
Start the threaded computation.
References Digikam::DynamicThread::finished(), Digikam::DImg::height, m_name, m_orgImage, Digikam::DynamicThread::start(), and Digikam::DImg::width.
Referenced by Digikam::PreviewThreadWrapper::startFilters().
|
virtual |
Start computation of this filter, directly in this thread.
References filterImage(), Digikam::DynamicThread::finished(), Digikam::DImg::height, m_name, m_orgImage, m_wasCancelled, started(), and Digikam::DImg::width.
Referenced by Digikam::BatchTool::applyFilter(), Digikam::BatchTool::applyFilterChangedProperties(), DigikamEditorProfileConversionToolPlugin::ProfileConversionTool::fastConversion(), initFilter(), DigikamRAWDImgPlugin::DImgRAWLoader::postProcess(), and run().
|
signalinherited |
Emitted if emitSignals is enabled
|
inherited |
|
slotinherited |
Stop computation, sets the running flag to false.
Referenced by Digikam::WBFilter::autoExposureAdjustement(), cancelFilter(), multithreadedSteps(), Digikam::LoadSaveThread::run(), Digikam::ScanStateFilter::run(), Digikam::DynamicThread::shutDown(), Digikam::FacePreviewLoader::slotImageLoaded(), Digikam::FacePipeline::Private::stop(), and Digikam::ImageHistogram::stopCalculation().
|
protectedinherited |
|
virtual |
Referenced by setFilterVersion().
|
protectedinherited |
This is the non-recursive mutex used to protect state variables and waiting in this class. You can use it if you want to protect your memory in the same scope as calling start, stop or wait, then using the QMutexLocker variants below. Note that when you have locked this mutex, you must use these variants, as the mutex is non-recursive.
Referenced by Digikam::ScanStateFilter::dispatch(), Digikam::LoadSaveThread::load(), Digikam::ManagedLoadSaveThread::load(), Digikam::ManagedLoadSaveThread::loadThumbnail(), Digikam::ManagedLoadSaveThread::preloadThumbnail(), Digikam::ManagedLoadSaveThread::preloadThumbnailGroup(), Digikam::ManagedLoadSaveThread::prependThumbnailGroup(), Digikam::ScanStateFilter::process(), Digikam::LoadSaveThread::run(), Digikam::ScanStateFilter::run(), Digikam::LoadSaveThread::save(), Digikam::ManagedLoadSaveThread::save(), Digikam::ManagedLoadSaveThread::shutDown(), Digikam::ManagedLoadSaveThread::stopAllTasks(), Digikam::ManagedLoadSaveThread::stopLoading(), Digikam::ManagedLoadSaveThread::stopSaving(), and Digikam::LoadSaveThread::taskHasFinished().
|
slotinherited |
Waits until the thread finishes. Typically, call stop() before.
Referenced by cancelFilter(), Digikam::ThumbnailLoadThread::cleanUp(), Digikam::DynamicThread::shutDown(), Digikam::FacePreviewLoader::slotImageLoaded(), Digikam::ImageHistogram::stopCalculation(), and Digikam::FacePipeline::Private::wait().
|
protectedinherited |
|
protected |
Output image data.
Referenced by Digikam::CBFilter::CBFilter(), Digikam::CurvesFilter::CurvesFilter(), Digikam::FilterActionFilter::filterImage(), Digikam::IccTransformFilter::filterImage(), Digikam::RawProcessingFilter::filterImage(), Digikam::WBFilter::filterImage(), Digikam::InvertFilter::InvertFilter(), Digikam::LevelsFilter::LevelsFilter(), prepareDestImage(), Digikam::GreycstorationFilter::setup(), and Digikam::SharpenFilter::SharpenFilter().
|
protected |
The master of this slave filter. Progress info will be routed to this one.
Referenced by initFilter(), initMaster(), initSlave(), postProgress(), and ~DImgThreadedFilter().
|
protected |
Filter name.
Referenced by setFilterName(), startFilter(), and startFilterDirectly().
|
protected |
Copy of original Image data.
Referenced by Digikam::ContentAwareFilter::ContentAwareFilter(), Digikam::FilterActionFilter::filterImage(), Digikam::IccTransformFilter::filterImage(), Digikam::RawProcessingFilter::filterImage(), Digikam::WBFilter::filterImage(), prepareDestImage(), setOriginalImage(), Digikam::GreycstorationFilter::setup(), Digikam::NREstimate::startAnalyse(), Digikam::AutoCrop::startAnalyse(), startFilter(), and startFilterDirectly().
|
protected |
The progress span that a slave filter uses in the parent filter's progress.
Referenced by initMaster(), initSlave(), and modulateProgress().
|
protected |
To prevent signals bombarding with progress indicator value in postProgress().
Referenced by initMaster(), initSlave(), and postProgress().
|
protected |
Referenced by initMaster(), initSlave(), and modulateProgress().
|
protected |
The current slave. Any filter might want to use another filter while processing.
Referenced by cancelFilter(), initMaster(), initSlave(), and setSlave().
|
protected |
Referenced by filterVersion(), and setFilterVersion().
|
protected |
Referenced by cancelFilter(), and startFilterDirectly().