12#include <klocalizedstring.h>
13#include <kpluginfactory.h>
48 KisAction *action = createAction(
"waveletdecompose");
49 connect(action, SIGNAL(triggered()),
this, SLOT(slotWaveletDecompose()));
60 if (dlg.exec() == QDialog::Accepted) {
62 KisCursorOverrideLock cursorLock(Qt::WaitCursor);
69 if (!
viewManager()->blockUntilOperationsFinished(image))
return;
74 if (!projection)
return;
83 const QBitArray flags(0);
85 QRect rc = image->
bounds();
90 for(
int level = 0; level < scales; ++level){
101 painter.
bitBlt(0, 0, blur, 0, 0, rc.width(), rc.height());
107 updater->setProgress((level * 100) / scales);
111 undo->beginMacro(
kundo2_i18n(
"Wavelet decompose"));
127 adapter.
addNode(paintLayer, baseGroup, 0);
134 adapter.
addNode(paintLayer, baseGroup, 0);
137 updater->setProgress(100);
142#include "waveletdecompose.moc"
const quint8 OPACITY_OPAQUE_U8
const QString COMPOSITE_GRAIN_MERGE
const QString COMPOSITE_GRAIN_EXTRACT
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
QPointer< KisViewManager > viewManager() const
KisUndoAdapter * undoAdapter() const
KisGroupLayerSP rootLayer() const
void barrierLock(bool readOnly=false)
Wait until all the queued background jobs are completed and lock the image.
KisPaintDeviceSP projection() const
QRect bounds() const override
void addNode(KisNodeSP node, KisNodeSP parent, KisNodeSP aboveThis, KisImageLayerAddCommand::Flags flags=KisImageLayerAddCommand::DoRedoUpdates|KisImageLayerAddCommand::DoUndoUpdates)
void setCompositeOp(KisNodeSP node, const KoCompositeOp *compositeOp)
const KoColorSpace * colorSpace() const
void bitBlt(qint32 dstX, qint32 dstY, const KisPaintDeviceSP srcDev, qint32 srcX, qint32 srcY, qint32 srcWidth, qint32 srcHeight)
void setCompositeOpId(const KoCompositeOp *op)
static void applyWavelet(KisPaintDeviceSP device, const QRect &rect, qreal xRadius, qreal yRadius, const QBitArray &channelFlags, KoUpdater *updater)
const KoCompositeOp * compositeOp(const QString &id, const KoColorSpace *srcSpace=nullptr) const
void slotWaveletDecompose()
WaveletDecompose(QObject *parent, const QVariantList &)
~WaveletDecompose() override
K_PLUGIN_FACTORY_WITH_JSON(KritaASCCDLFactory, "kritaasccdl.json", registerPlugin< KritaASCCDL >();) KritaASCCDL
KUndo2MagicString kundo2_i18n(const char *text)
KisNodeSP lastChild() const