File indexing completed on 2025-03-09 04:10:06

0001 /*
0002  *  SPDX-FileCopyrightText: 2004 Adrian Page <adrian@pagenet.plus.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef KIS_PREDEFINED_BRUSH_CHOOSER_H_
0007 #define KIS_PREDEFINED_BRUSH_CHOOSER_H_
0008 
0009 #include <QLabel>
0010 #include <kis_brush.h>
0011 #include <QScroller>
0012 
0013 #include "kritapaintop_export.h"
0014 #include "ui_wdgpredefinedbrushchooser.h"
0015 
0016 #include <lager/cursor.hpp>
0017 #include <KisBrushModel.h>
0018 
0019 
0020 class KisDoubleSliderSpinBox;
0021 class QLabel;
0022 class QCheckBox;
0023 
0024 class KisDoubleSliderSpinBox;
0025 class KisSpacingSelectionWidget;
0026 class KisCustomBrushWidget;
0027 class KisClipboardBrushWidget;
0028 class KisResourceItemChooser;
0029 class KoResource;
0030 class KisPredefinedBrushModel;
0031 
0032 
0033 class PAINTOP_EXPORT KisPredefinedBrushChooser : public QWidget, public Ui::WdgPredefinedBrushChooser
0034 {
0035 
0036     Q_OBJECT
0037 
0038 public:
0039     KisPredefinedBrushChooser(int maxBrushSize,
0040                               KisPredefinedBrushModel *model,
0041                               QWidget *parent = 0, const char *name = 0);
0042     ~KisPredefinedBrushChooser() override;
0043 
0044     void setBrush(KisBrushSP brush);
0045     void setImage(KisImageWSP image);
0046 
0047     lager::reader<bool> lightnessModeEnabled() const;
0048 
0049 private Q_SLOTS:
0050 
0051     void slotResetBrush();
0052     void slotResetAdjustments();
0053     void slotOpenStampBrush();
0054     void slotOpenClipboardBrush();
0055     void slotImportNewBrushResource();
0056     void slotDeleteBrushResource();
0057     void slotNewPredefinedBrush(KoResourceSP);
0058     void slotBrushSelected(KoResourceSP resource);
0059     void slotBrushPropertyChanged(KoResourceSignature signature);
0060 
0061 private:
0062     struct Private;
0063     const QScopedPointer<Private> m_d;
0064 
0065     KisBrushSP m_brush;
0066     KisResourceItemChooser* m_itemChooser;
0067     KisImageWSP m_image;
0068     KisCustomBrushWidget* m_stampBrushWidget;
0069     KisClipboardBrushWidget* m_clipboardBrushWidget;
0070 };
0071 
0072 #endif // KIS_PREDEFINED_BRUSH_CHOOSER_H_