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

#include <kis_paintop_registry.h>

+ Inheritance diagram for KisPaintOpRegistry:

Public Member Functions

KisInterstrokeDataFactorycreateInterstrokeDataFactory (KisPaintOpPresetSP preset) const
 
KisPaintOpSettingsSP createSettings (const KoID &id, KisResourcesInterfaceSP resourcesInterface) const
 
KisPaintOpPresetSP defaultPreset (const KoID &id, KisResourcesInterfaceSP resourcesInterface) const
 
QIcon icon (const KoID &id) const
 
 KisPaintOpRegistry ()
 
QList< KoIDlistKeys () const
 
KisPaintOppaintOp (const KisPaintOpPresetSP preset, KisPainter *painter, KisNodeSP node, KisImageSP image) const
 
 ~KisPaintOpRegistry () override
 
- Public Member Functions inherited from KoGenericRegistry< KisPaintOpFactory * >
void add (const QString &id, KisPaintOpFactory * item)
 
void add (KisPaintOpFactory * item)
 
void addAlias (const QString &alias, const QString &id)
 
QHash< QString, KisPaintOpFactory * >::const_iterator constBegin () const
 
QHash< QString, KisPaintOpFactory * >::const_iterator constEnd () const
 
bool contains (const QString &id) const
 
int count () const
 
QList< KisPaintOpFactory * > doubleEntries () const
 
KisPaintOpFactoryget (const QString &id) const
 
QList< QString > keys () const
 
 KoGenericRegistry ()
 
void remove (const QString &id)
 
void removeAlias (const QString &alias)
 
const KisPaintOpFactoryvalue (const QString &id) const
 
QList< KisPaintOpFactory * > values () const
 
virtual ~KoGenericRegistry ()
 

Static Public Member Functions

static KisPaintOpRegistryinstance ()
 

Private Member Functions

void initRegistry ()
 
 KisPaintOpRegistry (const KisPaintOpRegistry &)
 
KisPaintOpRegistry operator= (const KisPaintOpRegistry &)
 
KisPaintOppaintOp (const QString &id, const KisPaintOpSettingsSP settings, KisPainter *painter, KisNodeSP node, KisImageSP image) const
 

Friends

class KisPaintOpSettings
 

Detailed Description

Manages the loading and creating of all paintop plugins.

Definition at line 30 of file kis_paintop_registry.h.

Constructor & Destructor Documentation

◆ KisPaintOpRegistry() [1/2]

KisPaintOpRegistry::KisPaintOpRegistry ( )

Definition at line 30 of file kis_paintop_registry.cc.

31{
32}

◆ ~KisPaintOpRegistry()

KisPaintOpRegistry::~KisPaintOpRegistry ( )
override

Definition at line 34 of file kis_paintop_registry.cc.

35{
36 Q_FOREACH (const QString & id, keys()) {
37 delete get(id);
38 }
39 dbgRegistry << "Deleting KisPaintOpRegistry";
40}
KisPaintOpFactory * get(const QString &id) const
#define dbgRegistry
Definition kis_debug.h:47

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

◆ KisPaintOpRegistry() [2/2]

KisPaintOpRegistry::KisPaintOpRegistry ( const KisPaintOpRegistry & )
private

Member Function Documentation

◆ createInterstrokeDataFactory()

KisInterstrokeDataFactory * KisPaintOpRegistry::createInterstrokeDataFactory ( KisPaintOpPresetSP preset) const

Definition at line 94 of file kis_paintop_registry.cc.

95{
96 if (preset) {
97 KisPaintOpFactory* f = value(preset->paintOp().id());
98 if (f) {
99 return f->createInterstrokeDataFactory(preset->settings(), preset->resourcesInterface());
100 }
101 }
102
103 return 0;
104}
const KisPaintOpFactory * value(const QString &id) const

References KoGenericRegistry< KisPaintOpFactory * >::value().

◆ createSettings()

KisPaintOpSettingsSP KisPaintOpRegistry::createSettings ( const KoID & id,
KisResourcesInterfaceSP resourcesInterface ) const

Create and return an (abstracted) configuration widget for using the specified paintop with the specified input device, with the specified parent as widget parent. Returns 0 if there are no settings available for the given device.

Definition at line 106 of file kis_paintop_registry.cc.

107{
108 KisPaintOpFactory *f = value(id.id());
109 Q_ASSERT(f);
110 if (f) {
111 KisPaintOpSettingsSP settings = f->createSettings(resourcesInterface);
112 settings->setProperty("paintop", id.id());
113 return settings;
114 }
115 return 0;
116}

References KoGenericRegistry< KisPaintOpFactory * >::value().

◆ defaultPreset()

KisPaintOpPresetSP KisPaintOpRegistry::defaultPreset ( const KoID & id,
KisResourcesInterfaceSP resourcesInterface ) const
Returns
a default preset for the given paintop.

Definition at line 118 of file kis_paintop_registry.cc.

119{
120 KisPaintOpSettingsSP s = createSettings(id, resourcesInterface);
121 if (s.isNull()) {
122 return KisPaintOpPresetSP();
123 }
124
126 preset->setName(i18n("default"));
127
128 preset->setSettings(s);
129 preset->setPaintOp(id);
130 Q_ASSERT(!preset->paintOp().id().isEmpty());
131 preset->setValid(true);
132 return preset;
133}
KisPaintOpSettingsSP createSettings(const KoID &id, KisResourcesInterfaceSP resourcesInterface) const
bool isNull() const
QSharedPointer< KisPaintOpPreset > KisPaintOpPresetSP
Definition kis_types.h:235

References createSettings(), and KisSharedPtr< T >::isNull().

◆ icon()

QIcon KisPaintOpRegistry::icon ( const KoID & id) const

Definition at line 135 of file kis_paintop_registry.cc.

136{
137 KisPaintOpFactory* f = value(id.id());
138
139 if (!f) {
140 dbgRegistry << "No paintop" << id.id() << "";
141 QPixmap p = QPixmap(22, 22);
142 p.fill(Qt::transparent);
143 return QIcon(p);
144 }
145
146 return f->icon();
147}
const Params2D p

References dbgRegistry, p, and KoGenericRegistry< KisPaintOpFactory * >::value().

◆ initRegistry()

void KisPaintOpRegistry::initRegistry ( )
private

Definition at line 43 of file kis_paintop_registry.cc.

44{
45 KoPluginLoader::instance()->load("Krita/Paintop");
46}
void load(const QString &serviceType, const PluginsConfig &config=PluginsConfig(), QObject *owner=0, bool cache=true)
static KoPluginLoader * instance()

References KoPluginLoader::instance(), and KoPluginLoader::load().

◆ instance()

KisPaintOpRegistry * KisPaintOpRegistry::instance ( )
static

Definition at line 48 of file kis_paintop_registry.cc.

49{
50 if (!s_registryInstance.exists()) {
51 dbgRegistry << "initializing KisPaintOpRegistry";
52 s_registryInstance->initRegistry();
53 }
54 return s_registryInstance;
55}

References dbgRegistry, and initRegistry().

◆ listKeys()

QList< KoID > KisPaintOpRegistry::listKeys ( ) const

This function return a list of all the keys in KoID format by using the name() method on the objects stored in the registry.

Definition at line 149 of file kis_paintop_registry.cc.

150{
151 QList<KoID> answer;
152 Q_FOREACH (const QString & key, keys()) {
153 answer.append(KoID(key, get(key)->name()));
154 }
155
156 return answer;
157}
Definition KoID.h:30
const char * name(StandardAction id)

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

◆ operator=()

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

◆ paintOp() [1/2]

KisPaintOp * KisPaintOpRegistry::paintOp ( const KisPaintOpPresetSP preset,
KisPainter * painter,
KisNodeSP node,
KisImageSP image ) const

Create and return a paintop based on the given preset. A preset defines a paintop, a settings object and possible a brush tip.

Definition at line 87 of file kis_paintop_registry.cc.

88{
89 if (!preset) return 0;
90 if (!painter) return 0;
91 return paintOp(preset->paintOp().id(), preset->settings(), painter, node, image);
92}
KisPaintOp * paintOp(const KisPaintOpPresetSP preset, KisPainter *painter, KisNodeSP node, KisImageSP image) const

References paintOp().

◆ paintOp() [2/2]

KisPaintOp * KisPaintOpRegistry::paintOp ( const QString & id,
const KisPaintOpSettingsSP settings,
KisPainter * painter,
KisNodeSP node,
KisImageSP image ) const
private

Return a newly created paintop. You are responsible for deleting

Definition at line 67 of file kis_paintop_registry.cc.

68{
69 if (painter == 0) {
70 warnKrita << " KisPaintOpRegistry::paintOp painter is null";
71 return 0;
72 }
73
74 Q_ASSERT(settings);
75
77 if (f) {
78 KisPaintOp * op = f->createOp(settings, painter, node, image);
79 if (op) {
80 return op;
81 }
82 }
83 warnKrita << "Could not create paintop for factory" << id << "with settings" << settings;
84 return 0;
85}
#define warnKrita
Definition kis_debug.h:87

References KoGenericRegistry< KisPaintOpFactory * >::value(), and warnKrita.

Friends And Related Symbol Documentation

◆ KisPaintOpSettings

friend class KisPaintOpSettings
friend

Definition at line 85 of file kis_paintop_registry.h.


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