File indexing completed on 2024-05-26 04:33:10

0001 /*
0002  * This file is part of Krita
0003  *
0004  * SPDX-FileCopyrightText: 2006 Cyrille Berger <cberger@cberger.net>
0005  *
0006  *  SPDX-License-Identifier: GPL-2.0-or-later
0007  */
0008 
0009 #ifndef RANDOMPICKFILTER_H
0010 #define RANDOMPICKFILTER_H
0011 
0012 #include <QObject>
0013 #include <QVariant>
0014 #include "filter/kis_filter.h"
0015 
0016 class KisConfigWidget;
0017 
0018 class KritaRandomPickFilter : public QObject
0019 {
0020     Q_OBJECT
0021 public:
0022     KritaRandomPickFilter(QObject *parent, const QVariantList &);
0023     ~KritaRandomPickFilter() override;
0024 };
0025 
0026 class KisFilterRandomPick : public KisFilter
0027 {
0028 public:
0029     KisFilterRandomPick();
0030 public:
0031     void processImpl(KisPaintDeviceSP device,
0032                      const QRect& applyRect,
0033                      const KisFilterConfigurationSP config,
0034                      KoUpdater* progressUpdater
0035                      ) const override;
0036     static inline KoID id() {
0037         return KoID("randompick", i18n("Random Pick"));
0038     }
0039 
0040     KisFilterConfigurationSP defaultConfiguration(KisResourcesInterfaceSP resourcesInterface) const override;
0041 public:
0042     KisConfigWidget * createConfigurationWidget(QWidget* parent, const KisPaintDeviceSP dev, bool useForMasks) const override;
0043 
0044     QRect neededRect(const QRect& rect, const KisFilterConfigurationSP config, int lod = 0) const override;
0045     QRect changedRect(const QRect& rect, const KisFilterConfigurationSP config, int lod = 0) const override;
0046 };
0047 
0048 #endif