File indexing completed on 2024-05-12 15:56:08
0001 /* 0002 * SPDX-FileCopyrightText: 2010 Boudewijn Rempt <boud@valdyas.org> 0003 * SPDX-FileCopyrightText: 2010 Lukáš Tvrdý <lukast.dev@gmail.com> 0004 * SPDX-FileCopyrightText: 2007 Eric Lamarque <eric.lamarque@free.fr> 0005 * 0006 * SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 #ifndef KIS_ABR_BRUSH_ 0009 #define KIS_ABR_BRUSH_ 0010 0011 #include <QImage> 0012 #include <QVector> 0013 0014 #include <kis_scaling_size_brush.h> 0015 #include <kis_types.h> 0016 #include <kis_shared.h> 0017 0018 #include "kritabrush_export.h" 0019 0020 class KisQImagemask; 0021 class KisAbrBrushCollection; 0022 typedef KisSharedPtr<KisQImagemask> KisQImagemaskSP; 0023 0024 class QString; 0025 class QIODevice; 0026 0027 0028 class BRUSH_EXPORT KisAbrBrush : public KisScalingSizeBrush 0029 { 0030 0031 public: 0032 0033 /// Construct brush to load filename later as brush 0034 KisAbrBrush(const QString& filename, KisAbrBrushCollection *parent); 0035 KisAbrBrush(const KisAbrBrush& rhs); 0036 KisAbrBrush(const KisAbrBrush& rhs, KisAbrBrushCollection *parent); 0037 KisAbrBrush &operator=(const KisAbrBrush &rhs) = delete; 0038 KoResourceSP clone() const override; 0039 0040 bool isSerializable() const override; 0041 bool loadFromDevice(QIODevice *dev, KisResourcesInterfaceSP resourcesInterface) override; 0042 bool saveToDevice(QIODevice *dev) const override; 0043 0044 QPair<QString, QString> resourceType() const override { 0045 return QPair<QString, QString>(ResourceType::Brushes, ResourceSubType::AbrBrushes); 0046 } 0047 0048 /** 0049 * @return default file extension for saving the brush 0050 */ 0051 QString defaultFileExtension() const override; 0052 0053 QImage brushTipImage() const override; 0054 0055 friend class KisAbrBrushCollection; 0056 0057 void setBrushTipImage(const QImage& image) override; 0058 0059 void toXML(QDomDocument& d, QDomElement& e) const override; 0060 0061 private: 0062 KisAbrBrushCollection *m_parent; 0063 }; 0064 0065 typedef QSharedPointer<KisAbrBrush> KisAbrBrushSP; 0066 0067 #endif // KIS_ABR_BRUSH_ 0068