Krita Source Code Documentation
Loading...
Searching...
No Matches
KisBrushRegistry Class Reference

#include <kis_brush_registry.h>

+ Inheritance diagram for KisBrushRegistry:

Public Member Functions

KoResourceLoadResult createBrush (const KisBrushModel::BrushData &data, KisResourcesInterfaceSP resourcesInterface)
 
KoResourceLoadResult createBrush (const QDomElement &element, KisResourcesInterfaceSP resourcesInterface)
 
std::optional< KisBrushModel::BrushDatacreateBrushModel (const QDomElement &element, KisResourcesInterfaceSP resourcesInterface)
 
 KisBrushRegistry ()
 
void toXML (QDomDocument &doc, QDomElement &element, const KisBrushModel::BrushData &model)
 
 ~KisBrushRegistry () override
 
- Public Member Functions inherited from KoGenericRegistry< KisBrushFactory * >
void add (const QString &id, KisBrushFactory * item)
 
void add (KisBrushFactory * item)
 
void addAlias (const QString &alias, const QString &id)
 
QHash< QString, KisBrushFactory * >::const_iterator constBegin () const
 
QHash< QString, KisBrushFactory * >::const_iterator constEnd () const
 
bool contains (const QString &id) const
 
int count () const
 
QList< KisBrushFactory * > doubleEntries () const
 
KisBrushFactoryget (const QString &id) const
 
QList< QString > keys () const
 
 KoGenericRegistry ()
 
void remove (const QString &id)
 
void removeAlias (const QString &alias)
 
const KisBrushFactoryvalue (const QString &id) const
 
QList< KisBrushFactory * > values () const
 
virtual ~KoGenericRegistry ()
 

Static Public Member Functions

static KisBrushRegistryinstance ()
 

Private Member Functions

 KisBrushRegistry (const KisBrushRegistry &)
 
KisBrushRegistry operator= (const KisBrushRegistry &)
 

Detailed Description

Definition at line 23 of file kis_brush_registry.h.

Constructor & Destructor Documentation

◆ KisBrushRegistry() [1/2]

KisBrushRegistry::KisBrushRegistry ( )

Definition at line 25 of file kis_brush_registry.cpp.

26{
27}

◆ ~KisBrushRegistry()

KisBrushRegistry::~KisBrushRegistry ( )
override

Definition at line 29 of file kis_brush_registry.cpp.

30{
31 Q_FOREACH (const QString & id, keys()) {
32 delete get(id);
33 }
34 dbgRegistry << "deleting KisBrushRegistry";
35}
KisBrushFactory * get(const QString &id) const
#define dbgRegistry
Definition kis_debug.h:47

References dbgRegistry, KoGenericRegistry< KisBrushFactory * >::get(), and KoGenericRegistry< KisBrushFactory * >::keys().

◆ KisBrushRegistry() [2/2]

KisBrushRegistry::KisBrushRegistry ( const KisBrushRegistry & )
private

Member Function Documentation

◆ createBrush() [1/2]

KoResourceLoadResult KisBrushRegistry::createBrush ( const KisBrushModel::BrushData & data,
KisResourcesInterfaceSP resourcesInterface )

Definition at line 67 of file kis_brush_registry.cpp.

68{
69 QDomDocument doc;
70 QDomElement element = doc.createElement("brush_definition");
71 toXML(doc, element, data);
72 return createBrush(element, resourcesInterface);
73}
KoResourceLoadResult createBrush(const QDomElement &element, KisResourcesInterfaceSP resourcesInterface)
void toXML(QDomDocument &doc, QDomElement &element, const KisBrushModel::BrushData &model)

References createBrush(), and toXML().

◆ createBrush() [2/2]

KoResourceLoadResult KisBrushRegistry::createBrush ( const QDomElement & element,
KisResourcesInterfaceSP resourcesInterface )

Definition at line 51 of file kis_brush_registry.cpp.

52{
53 QString brushType = element.attribute("type");
54
55 if (brushType.isEmpty()) {
56 return KoResourceSignature(ResourceType::Brushes, "", "unknown", "unknown");
57 }
58
59 KisBrushFactory *factory = get(brushType);
60 if (!factory) {
61 return KoResourceSignature(ResourceType::Brushes, "", "unknown", "unknown");
62 }
63
64 return factory->createBrush(element, resourcesInterface);
65}
virtual KoResourceLoadResult createBrush(const QDomElement &element, KisResourcesInterfaceSP resourcesInterface)=0
A simple wrapper object for the main information about the resource.
const QString Brushes

References ResourceType::Brushes, KisBrushFactory::createBrush(), and KoGenericRegistry< KisBrushFactory * >::get().

◆ createBrushModel()

std::optional< KisBrushModel::BrushData > KisBrushRegistry::createBrushModel ( const QDomElement & element,
KisResourcesInterfaceSP resourcesInterface )

Definition at line 75 of file kis_brush_registry.cpp.

76{
77 QString brushType = element.attribute("type");
78
79 if (brushType.isEmpty()) {
80 return std::nullopt;
81 }
82
83 KisBrushFactory *factory = get(brushType);
84
85 if (!factory) {
86 return std::nullopt;
87 }
88
89 return factory->createBrushModel(element, resourcesInterface);
90}
virtual std::optional< KisBrushModel::BrushData > createBrushModel(const QDomElement &element, KisResourcesInterfaceSP resourcesInterface)=0

References KisBrushFactory::createBrushModel(), and KoGenericRegistry< KisBrushFactory * >::get().

◆ instance()

KisBrushRegistry * KisBrushRegistry::instance ( )
static

Definition at line 37 of file kis_brush_registry.cpp.

38{
39 if (!s_instance.exists()) {
40 s_instance->add(new KisAutoBrushFactory());
41 s_instance->add(new KisPredefinedBrushFactory("gbr_brush"));
42 s_instance->add(new KisPredefinedBrushFactory("abr_brush"));
43 s_instance->add(new KisTextBrushFactory());
44 s_instance->add(new KisPredefinedBrushFactory("png_brush"));
45 s_instance->add(new KisPredefinedBrushFactory("svg_brush"));
46 }
47 return s_instance;
48}

References KoGenericRegistry< T >::add().

◆ operator=()

KisBrushRegistry KisBrushRegistry::operator= ( const KisBrushRegistry & )
private

◆ toXML()

void KisBrushRegistry::toXML ( QDomDocument & doc,
QDomElement & element,
const KisBrushModel::BrushData & model )

Definition at line 92 of file kis_brush_registry.cpp.

93{
94 QString brushType;
95
96 if (model.type == KisBrushModel::Auto) {
97 brushType = "auto_brush";
98 } else if (model.type == KisBrushModel::Text) {
99 brushType = "kis_text_brush";
100 } else {
101 brushType = model.predefinedBrush.subtype;
102 }
103
104 KIS_SAFE_ASSERT_RECOVER_RETURN(!brushType.isEmpty());
105
106 KisBrushFactory *factory = get(brushType);
108
109 factory->toXML(doc, element, model);
110}
virtual void toXML(QDomDocument &doc, QDomElement &element, const KisBrushModel::BrushData &model)=0
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:128
PredefinedBrushData predefinedBrush

References KisBrushModel::Auto, KoGenericRegistry< KisBrushFactory * >::get(), KIS_SAFE_ASSERT_RECOVER_RETURN, KisBrushModel::BrushData::predefinedBrush, KisBrushModel::PredefinedBrushData::subtype, KisBrushModel::Text, KisBrushFactory::toXML(), and KisBrushModel::BrushData::type.


The documentation for this class was generated from the following files: