File indexing completed on 2024-05-19 04:24:15
0001 /* 0002 * SPDX-FileCopyrightText: 2008 Boudewijn Rempt <boud@valdyas.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KIS_BRUSH_REGISTRY_H_ 0008 #define KIS_BRUSH_REGISTRY_H_ 0009 0010 #include <QObject> 0011 0012 #include "kis_types.h" 0013 #include "KoGenericRegistry.h" 0014 0015 #include <kritabrush_export.h> 0016 0017 #include "kis_brush.h" 0018 #include "kis_brush_factory.h" 0019 #include "KisBrushModel.h" 0020 0021 class QDomElement; 0022 0023 class BRUSH_EXPORT KisBrushRegistry : public QObject, public KoGenericRegistry<KisBrushFactory*> 0024 { 0025 0026 Q_OBJECT 0027 0028 public: 0029 KisBrushRegistry(); 0030 ~KisBrushRegistry() override; 0031 0032 static KisBrushRegistry* instance(); 0033 0034 KoResourceLoadResult createBrush(const QDomElement& element, KisResourcesInterfaceSP resourcesInterface); 0035 KoResourceLoadResult createBrush(const KisBrushModel::BrushData &data, KisResourcesInterfaceSP resourcesInterface); 0036 std::optional<KisBrushModel::BrushData> createBrushModel(const QDomElement& element, KisResourcesInterfaceSP resourcesInterface); 0037 void toXML(QDomDocument &doc, QDomElement& element, const KisBrushModel::BrushData &model); 0038 0039 private: 0040 KisBrushRegistry(const KisBrushRegistry&); 0041 KisBrushRegistry operator=(const KisBrushRegistry&); 0042 }; 0043 0044 #endif // KIS_GENERATOR_REGISTRY_H_