Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_predefined_brush_factory.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2013 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __KIS_PREDEFINED_BRUSH_FACTORY_H
8#define __KIS_PREDEFINED_BRUSH_FACTORY_H
9
10#include <QString>
11#include <QDomElement>
12
13#include "kis_brush_factory.h"
14#include "kis_brush.h"
15
16#include "kritabrush_export.h"
17
18class BRUSH_EXPORT KisPredefinedBrushFactory : public KisBrushFactory
19{
20public:
21 KisPredefinedBrushFactory(const QString &brushType);
22
23 QString id() const override;
24 KoResourceLoadResult createBrush(const KisBrushModel::BrushData &brushData, KisResourcesInterfaceSP resourcesInterface) override;
25 KoResourceLoadResult createBrush(const QDomElement& brushDefinition, KisResourcesInterfaceSP resourcesInterface) override;
26 std::optional<KisBrushModel::BrushData> createBrushModel(const QDomElement& element, KisResourcesInterfaceSP resourcesInterface) override;
27 static void loadFromBrushResource(KisBrushModel::CommonData &commonData, KisBrushModel::PredefinedBrushData &predefinedBrushData, KisBrushSP brushResource);
28 void toXML(QDomDocument &doc, QDomElement &element, const KisBrushModel::BrushData &model) override;
29
30private:
31 std::variant<KisBrushModel::BrushData, KoResourceSignature> createBrushModelImpl(const QDomElement& element, KisResourcesInterfaceSP resourcesInterface);
32
33private:
34 const QString m_id;
35};
36
37#endif /* __KIS_PREDEFINED_BRUSH_FACTORY_H */
virtual KoResourceLoadResult createBrush(const QDomElement &element, KisResourcesInterfaceSP resourcesInterface)=0
virtual QString id() const =0
virtual std::optional< KisBrushModel::BrushData > createBrushModel(const QDomElement &element, KisResourcesInterfaceSP resourcesInterface)=0
virtual void toXML(QDomDocument &doc, QDomElement &element, const KisBrushModel::BrushData &model)=0