File indexing completed on 2025-02-02 04:22:08

0001 /*
0002  *  SPDX-FileCopyrightText: 2004, 2007 Cyrille Berger <cberger@cberger.net>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef _KIS_AUTO_BRUSH_WIDGET_H_
0008 #define _KIS_AUTO_BRUSH_WIDGET_H_
0009 
0010 #include <QObject>
0011 #include <QResizeEvent>
0012 #include "kritapaintop_export.h"
0013 #include "ui_wdgautobrush.h"
0014 #include <kis_auto_brush.h>
0015 
0016 #include <lager/cursor.hpp>
0017 #include <KisBrushModel.h>
0018 
0019 class KisSignalCompressor;
0020 class KisAspectRatioLocker;
0021 class KisAutoBrushModel;
0022 
0023 class PAINTOP_EXPORT KisWdgAutoBrush : public QWidget, public Ui::KisWdgAutoBrush
0024 {
0025     Q_OBJECT
0026 
0027 public:
0028     KisWdgAutoBrush(QWidget *parent, const char *name)
0029         : QWidget(parent)
0030     {
0031         setObjectName(name);
0032         setupUi(this);
0033     }
0034 
0035 };
0036 
0037 class PAINTOP_EXPORT KisAutoBrushWidget : public KisWdgAutoBrush
0038 {
0039     Q_OBJECT
0040 
0041 public:
0042 
0043     KisAutoBrushWidget(int maxBrushSize,
0044                        KisAutoBrushModel *model,
0045                        QWidget *parent, const char* name);
0046     ~KisAutoBrushWidget() override;
0047 
0048     KisBrushSP brush();
0049 
0050 private Q_SLOTS:
0051     void setStackedWidget(int);
0052 
0053     void slotCurveWidgetChanged();
0054     void slotCurvePropertyChanged(const QString &value);
0055 
0056     void slotUpdateBrushPreview();
0057 
0058 protected:
0059     void resizeEvent(QResizeEvent *) override;
0060 
0061 private:
0062     QScopedPointer<KisAspectRatioLocker> m_fadeAspectLocker;
0063 
0064     struct Private;
0065     const QScopedPointer<Private> m_d;
0066 };
0067 
0068 
0069 #endif