File indexing completed on 2024-05-19 04:24:16
0001 /* 0002 * SPDX-FileCopyrightText: 2013 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef __KIS_PREDEFINED_BRUSH_FACTORY_H 0008 #define __KIS_PREDEFINED_BRUSH_FACTORY_H 0009 0010 #include <QString> 0011 #include <QDomElement> 0012 0013 #include "kis_brush_factory.h" 0014 #include "kis_brush.h" 0015 0016 #include "kritabrush_export.h" 0017 0018 class BRUSH_EXPORT KisPredefinedBrushFactory : public KisBrushFactory 0019 { 0020 public: 0021 KisPredefinedBrushFactory(const QString &brushType); 0022 0023 QString id() const override; 0024 KoResourceLoadResult createBrush(const KisBrushModel::BrushData &brushData, KisResourcesInterfaceSP resourcesInterface) override; 0025 KoResourceLoadResult createBrush(const QDomElement& brushDefinition, KisResourcesInterfaceSP resourcesInterface) override; 0026 std::optional<KisBrushModel::BrushData> createBrushModel(const QDomElement& element, KisResourcesInterfaceSP resourcesInterface) override; 0027 static void loadFromBrushResource(KisBrushModel::CommonData &commonData, KisBrushModel::PredefinedBrushData &predefinedBrushData, KisBrushSP brushResource); 0028 void toXML(QDomDocument &doc, QDomElement &element, const KisBrushModel::BrushData &model) override; 0029 0030 private: 0031 std::variant<KisBrushModel::BrushData, KoResourceSignature> createBrushModelImpl(const QDomElement& element, KisResourcesInterfaceSP resourcesInterface); 0032 0033 private: 0034 const QString m_id; 0035 }; 0036 0037 #endif /* __KIS_PREDEFINED_BRUSH_FACTORY_H */