File indexing completed on 2024-06-09 04:28:10
0001 /* 0002 * SPDX-FileCopyrightText: 2005 Bart Coppens <kde@bartcoppens.be> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KIS_CUSTOM_BRUSH_H_ 0008 #define KIS_CUSTOM_BRUSH_H_ 0009 0010 #include <QObject> 0011 #include <QShowEvent> 0012 0013 #include "ui_wdgcustombrush.h" 0014 #include <kis_types.h> 0015 #include <kis_brush.h> 0016 #include <KoResourceServer.h> 0017 0018 const QString TEMPORARY_FILENAME = "/tmp/temporaryKritaBrush.gbr"; 0019 const QString TEMPORARY_BRUSH_NAME = "Temporary custom brush"; 0020 const double DEFAULT_SPACING = 0.25; 0021 0022 0023 class KoResource; 0024 0025 0026 class KisWdgCustomBrush : public QDialog, public Ui::KisWdgCustomBrush 0027 { 0028 Q_OBJECT 0029 0030 public: 0031 KisWdgCustomBrush(QWidget *parent) : QDialog(parent) { 0032 setupUi(this); 0033 } 0034 }; 0035 0036 class KisCustomBrushWidget : public KisWdgCustomBrush 0037 { 0038 Q_OBJECT 0039 public: 0040 KisCustomBrushWidget(QWidget *parent, const QString& caption, KisImageWSP image); 0041 virtual ~KisCustomBrushWidget(); 0042 KisBrushSP brush(); 0043 0044 void setImage(KisImageWSP image); 0045 0046 protected: 0047 void showEvent(QShowEvent *) override; 0048 0049 private Q_SLOTS: 0050 void slotAddPredefined(); 0051 void slotUpdateCurrentBrush(int i = 0); // To connect with activated(int) 0052 void slotSpacingChanged(); 0053 void slotUpdateUseColorAsMask(bool useColorAsMask); 0054 void slotUpdateSaveButton(); 0055 0056 Q_SIGNALS: 0057 void sigNewPredefinedBrush(KoResourceSP ); 0058 0059 private: 0060 void createBrush(); 0061 void updatePreviewImage(); 0062 0063 KisImageWSP m_image; 0064 KisBrushSP m_brush; 0065 0066 KoResourceServer<KisBrush> *m_rServer {0}; 0067 }; 0068 0069 0070 #endif // KIS_CUSTOM_BRUSH_H_