13#include <klocalizedstring.h>
30#define UPDATE_DELAY 100
72 m_d->updateSignalCompressor.start();
80 QMutexLocker locker(&
m_d->mutex);
81 m_d->preparedRect = QRect();
94 m_d->updateSignalCompressor.start();
109 if (!
m_d->updateCookie) {
112 m_d->updateSignalCompressor.start();
119 QMutexLocker locker(&
m_d->mutex);
124 if (filterConfig !=
m_d->preparedForFilter) {
131 m_d->preparedRect = QRect();
134 const QRegion processRegion(QRegion(updateRect) -
m_d->preparedRect);
135 if (processRegion.isEmpty())
147 Q_FOREACH (
auto job, jobs) {
151 m_d->updateCookie = cookie;
152 m_d->preparedRect = updateRect;
154 m_d->preparedForFilter = filterConfig;
163 return m_d->updateCookie;
184 return v.visit(
this);
189 return visitor.
visit(
this, undoAdapter);
212 QMutexLocker locker(&
m_d->mutex);
213 m_d->preparedRect = QRect();
215 m_d->updateSignalCompressor.start();
222 QMutexLocker locker(&
m_d->mutex);
223 m_d->preparedRect = QRect();
225 m_d->updateSignalCompressor.start();
231 m_d->updateSignalCompressor.start();
237 m_d->updateSignalCompressor.stop();
238 m_d->updateCookie.clear();
246 return m_d->updateSignalCompressor.isActive();
253 QMutexLocker locker(&
m_d->mutex);
254 m_d->preparedRect = QRect();
261 m_d->updateSignalCompressor.start();
float value(const T *src, size_t ch)
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
static KisGeneratorRegistry * instance()
static QVector< KisStrokeJobData * > createJobsData(const KisGeneratorLayerSP layer, QSharedPointer< boost::none_t > cookie, const KisGeneratorSP f, const KisPaintDeviceSP dev, const QRegion &rc, const KisFilterConfigurationSP filterConfig)
const KoColorSpace * colorSpace() const
void addJob(KisStrokeId id, KisStrokeJobData *data) override
KisStrokeId startStroke(KisStrokeStrategy *strokeStrategy) override
QRect bounds() const override
void endStroke(KisStrokeId id) override
virtual KisFilterConfigurationSP filter() const
virtual void setFilter(KisFilterConfigurationSP filterConfig, bool checkCompareConfig=true)
virtual void visit(KisNode *node, KisUndoAdapter *undoAdapter)=0
const T * constData() const
KisSharedPtr< T > toStrongRef() const
toStrongRef returns a KisSharedPtr which may be dereferenced.
const T value(const QString &id) const
#define KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(cond, val)
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
QIcon loadIcon(const QString &name)
KisFilterConfigurationSP preparedForFilter
void resetCacheWithoutUpdate(const KoColorSpace *colorSpace)
const QScopedPointer< Private > m_d
~KisGeneratorLayer() override
void resetCache(const KoColorSpace *colorSpace) override
void setDirtyWithoutUpdate(const QVector< QRect > &rects)
bool accept(KisNodeVisitor &) override
QWeakPointer< boost::none_t > updateCookie
KisGeneratorLayer(KisImageWSP image, const QString &name, KisFilterConfigurationSP kfc, KisSelectionSP selection)
void forceUpdateTimedNode() override
forceUpdateTimedNode forces the node to regenerate its project. The update might be asynchronous,...
void setFilterWithoutUpdate(KisFilterConfigurationSP filterConfig, bool checkCompareConfig=true)
void requestUpdateJobsWithStroke(const KisStrokeId stroke, const KisFilterConfigurationSP configuration)
void setY(qint32 y) override
void setX(qint32 x) override
QRect preparedImageBounds
QWeakPointer< boost::none_t > previewWithStroke(const KisStrokeId stroke)
QIcon icon() const override
bool hasPendingTimedUpdates() const override
void setFilter(KisFilterConfigurationSP filterConfig, bool checkCompareConfig=true) override
void slotDelayedStaticUpdate()
KisBaseNode::PropertyList sectionModelProperties() const override
KisThreadSafeSignalCompressor updateSignalCompressor
const KoColorSpace * colorSpace() const override
returns the image's colorSpace or null, if there is no image
KisLayerSP parentLayer() const
KisBaseNode::PropertyList sectionModelProperties() const override
Describes base behaviour for selection base classes like KisAdjustmentLayer and KisGeneratorLayer....
qint32 x() const override
virtual void resetCache(const KoColorSpace *colorSpace)
qint32 y() const override
QRect extent() const override
void setX(qint32 x) override
void setY(qint32 y) override
KisPaintDeviceSP original() const override