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

#include <KisGradientMapFilterConfiguration.h>

+ Inheritance diagram for KisGradientMapFilterConfiguration:

Public Types

enum  ColorMode { ColorMode_Blend , ColorMode_Nearest , ColorMode_Dither }
 

Public Member Functions

virtual KisFilterConfigurationSP clone () const override
 
int colorMode () const
 
QList< KoResourceLoadResultembeddedResources (KisResourcesInterfaceSP globalResourcesInterface) const override
 
KoAbstractGradientSP gradient (KoAbstractGradientSP fallbackGradient=nullptr) const
 
 KisGradientMapFilterConfiguration (const KisGradientMapFilterConfiguration &rhs)
 
 KisGradientMapFilterConfiguration (KisResourcesInterfaceSP resourcesInterface)
 
 KisGradientMapFilterConfiguration (qint32 version, KisResourcesInterfaceSP resourcesInterface)
 
QList< KoResourceLoadResultlinkedResources (KisResourcesInterfaceSP globalResourcesInterface) const override
 
void setColorMode (int newColorMode)
 
void setDefaults ()
 
void setGradient (KoAbstractGradientSP newGradient)
 
- Public Member Functions inherited from KisFilterConfiguration
QBitArray channelFlags () const
 
KisFilterConfigurationSP cloneWithResourcesSnapshot (KisResourcesInterfaceSP globalResourcesInterface=nullptr) const
 
virtual bool compareTo (const KisPropertiesConfiguration *rhs) const override
 
void createLocalResourcesSnapshot (KisResourcesInterfaceSP globalResourcesInterface=nullptr)
 
virtual void fromLegacyXML (const QDomElement &)
 
void fromXML (const QDomElement &) override
 
void fromXML (const QDomElement &) override
 
bool fromXML (const QString &xml, bool clear=true) override
 
bool hasLocalResourcesSnapshot () const
 
virtual bool isCompatible (const KisPaintDeviceSP) const
 
 KisFilterConfiguration (const QString &name, qint32 version, KisResourcesInterfaceSP resourcesInterface)
 
const QString & name () const
 
 Private (const Private &rhs)
 
 Private (const QString &_name, qint32 _version, KisResourcesInterfaceSP _resourcesInterface)
 
QList< KoResourceLoadResultrequiredResources (KisResourcesInterfaceSP globalResourcesInterface) const
 
KisResourcesInterfaceSP resourcesInterface () const
 
void setChannelFlags (QBitArray channelFlags)
 
virtual void setResourcesInterface (KisResourcesInterfaceSP resourcesInterface)
 
QString toXML () const override
 
void toXML (QDomDocument &, QDomElement &) const override
 
void toXML (QDomDocument &, QDomElement &) const override
 
qint32 version () const
 
 ~KisFilterConfiguration () override
 
- Public Member Functions inherited from Private
 Private (KisCanvas2 *c)
 
- Public Member Functions inherited from KisPropertiesConfiguration
void clearProperties ()
 Clear the map of properties.
 
virtual void dump () const
 
void fromXML (const QDomElement &) override
 
bool fromXML (const QString &xml, bool clear=true) override
 
bool getBool (const QString &name, bool def=false) const
 
KoColor getColor (const QString &name, const KoColor &color=KoColor()) const
 getColor fetch the given property as a KoColor.
 
KisCubicCurve getCubicCurve (const QString &name, const KisCubicCurve &curve=KisCubicCurve()) const
 
double getDouble (const QString &name, double def=0.0) const
 
float getFloat (const QString &name, float def=0.0) const
 
int getInt (const QString &name, int def=0) const
 
void getPrefixedProperties (const QString &prefix, KisPropertiesConfiguration *config) const
 
void getPrefixedProperties (const QString &prefix, KisPropertiesConfigurationSP config) const
 
virtual QMap< QString, QVariant > getProperties () const
 
virtual QList< QString > getPropertiesKeys () const
 
virtual QVariant getProperty (const QString &name) const
 
virtual bool getProperty (const QString &name, QVariant &value) const
 
QString getPropertyLazy (const QString &name, const char *defaultValue) const
 
QStringList getPropertyLazy (const QString &name, const QStringList &defaultValue) const
 
template<typename T >
getPropertyLazy (const QString &name, const T &defaultValue) const
 
QString getString (const QString &name, const QString &def=QString()) const
 
QStringList getStringList (const QString &name, const QStringList &defaultValue=QStringList()) const
 
virtual bool hasProperty (const QString &name) const
 
 KisPropertiesConfiguration ()
 
 KisPropertiesConfiguration (const KisPropertiesConfiguration &rhs)
 
KisPropertiesConfigurationoperator= (const KisPropertiesConfiguration &rhs)
 
void removeProperty (const QString &name)
 
void setPrefixedProperties (const QString &prefix, const KisPropertiesConfiguration *config)
 
void setPrefixedProperties (const QString &prefix, const KisPropertiesConfigurationSP config)
 
void setProperty (const QString &name, const QStringList &value)
 
virtual void setProperty (const QString &name, const QVariant &value)
 
void setPropertyNotSaved (const QString &name)
 Marks a property that should not be saved by toXML.
 
QString toXML () const override
 
void toXML (QDomDocument &, QDomElement &) const override
 
 ~KisPropertiesConfiguration () override
 
- Public Member Functions inherited from KisSerializableConfiguration
 KisSerializableConfiguration ()
 
 KisSerializableConfiguration (const KisSerializableConfiguration &rhs)
 
virtual ~KisSerializableConfiguration ()
 
- Public Member Functions inherited from KisShared
bool deref ()
 
bool ref ()
 
int refCount ()
 
QAtomicInt * sharedWeakReference ()
 

Static Public Member Functions

static constexpr int defaultColorMode ()
 
static KoAbstractGradientSP defaultGradient (KisResourcesInterfaceSP resourcesInterface)
 
static QString defaultName ()
 
static constexpr qint32 defaultVersion ()
 
- Static Public Member Functions inherited from KisPropertiesConfiguration
static QString escapeString (const QString &string)
 
static QString extractedPrefixKey ()
 
static QString unescapeString (const QString &string)
 

Additional Inherited Members

- Public Attributes inherited from KisFilterConfiguration
QBitArray channelFlags
 
QString name
 
KisResourcesInterfaceSP resourcesInterface = 0
 
qint32 version
 
- Public Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 
- Public Attributes inherited from KisPropertiesConfiguration
QSet< QString > notSavedProperties
 
QMap< QString, QVariant > properties
 
- Protected Member Functions inherited from KisFilterConfiguration
 KisFilterConfiguration (const KisFilterConfiguration &rhs)
 
void setVersion (qint32 version)
 
- Protected Member Functions inherited from KisShared
 KisShared ()
 
 ~KisShared ()
 

Detailed Description

Definition at line 24 of file KisGradientMapFilterConfiguration.h.

Member Enumeration Documentation

◆ ColorMode

Constructor & Destructor Documentation

◆ KisGradientMapFilterConfiguration() [1/3]

KisGradientMapFilterConfiguration::KisGradientMapFilterConfiguration ( KisResourcesInterfaceSP resourcesInterface)

Definition at line 21 of file KisGradientMapFilterConfiguration.cpp.

23{}
KisFilterConfiguration(const QString &name, qint32 version, KisResourcesInterfaceSP resourcesInterface)
KisResourcesInterfaceSP resourcesInterface

◆ KisGradientMapFilterConfiguration() [2/3]

KisGradientMapFilterConfiguration::KisGradientMapFilterConfiguration ( qint32 version,
KisResourcesInterfaceSP resourcesInterface )

◆ KisGradientMapFilterConfiguration() [3/3]

KisGradientMapFilterConfiguration::KisGradientMapFilterConfiguration ( const KisGradientMapFilterConfiguration & rhs)

Definition at line 29 of file KisGradientMapFilterConfiguration.cpp.

31{}

Member Function Documentation

◆ clone()

KisFilterConfigurationSP KisGradientMapFilterConfiguration::clone ( ) const
overridevirtual
Returns
an exact copy of the filter configuration. Resources interface is becomes shared between two configuration objects.

Reimplemented from KisFilterConfiguration.

Definition at line 33 of file KisGradientMapFilterConfiguration.cpp.

34{
35 return new KisGradientMapFilterConfiguration(*this);
36}
KisGradientMapFilterConfiguration(KisResourcesInterfaceSP resourcesInterface)

References KisGradientMapFilterConfiguration().

◆ colorMode()

int KisGradientMapFilterConfiguration::colorMode ( ) const

Definition at line 120 of file KisGradientMapFilterConfiguration.cpp.

121{
122 return getInt("colorMode", defaultColorMode());
123}
int getInt(const QString &name, int def=0) const

References defaultColorMode(), and KisPropertiesConfiguration::getInt().

◆ defaultColorMode()

static constexpr int KisGradientMapFilterConfiguration::defaultColorMode ( )
inlinestaticconstexpr

Definition at line 75 of file KisGradientMapFilterConfiguration.h.

76 {
77 return ColorMode_Blend;
78 }

References ColorMode_Blend.

◆ defaultGradient()

static KoAbstractGradientSP KisGradientMapFilterConfiguration::defaultGradient ( KisResourcesInterfaceSP resourcesInterface)
inlinestatic

Definition at line 53 of file KisGradientMapFilterConfiguration.h.

54 {
56 KoAbstractGradientSP resourceGradient = resourcesInterface->source<KoAbstractGradient>(ResourceType::Gradients).fallbackResource();
57 if (resourceGradient) {
58 gradient = resourceGradient->clone().dynamicCast<KoAbstractGradient>();
59 } else {
60 KoStopGradientSP stopGradient(new KoStopGradient);
61 stopGradient->setStops(
65 );
66 gradient = stopGradient.staticCast<KoAbstractGradient>();
67 }
68 if (gradient) {
69 gradient->setName(i18nc("Default gradient name for the gradient generator", "Unnamed"));
70 gradient->setValid(true);
71 }
72 return gradient;
73 }
@ FOREGROUNDSTOP
@ BACKGROUNDSTOP
KoAbstractGradientSP gradient(KoAbstractGradientSP fallbackGradient=nullptr) const
const QString Gradients
static KoColorSpaceRegistry * instance()

References BACKGROUNDSTOP, FOREGROUNDSTOP, gradient(), ResourceType::Gradients, KoColorSpaceRegistry::instance(), and KisFilterConfiguration::resourcesInterface.

◆ defaultName()

static QString KisGradientMapFilterConfiguration::defaultName ( )
inlinestatic

Definition at line 43 of file KisGradientMapFilterConfiguration.h.

44 {
45 return "gradientmap";
46 }

◆ defaultVersion()

static constexpr qint32 KisGradientMapFilterConfiguration::defaultVersion ( )
inlinestaticconstexpr

Definition at line 48 of file KisGradientMapFilterConfiguration.h.

49 {
50 return 2;
51 }

◆ embeddedResources()

QList< KoResourceLoadResult > KisGradientMapFilterConfiguration::embeddedResources ( KisResourcesInterfaceSP globalResourcesInterface) const
overridevirtual
Returns
all the resources that were embedded into (*this) filter. If the resources were already added to the global database, then they are fetched from globalResourcesInterface to save time/memory.

Reimplemented from KisFilterConfiguration.

Definition at line 60 of file KisGradientMapFilterConfiguration.cpp.

61{
63
64 // the second version of the filter embeds the gradient
65 if (version() > 1) {
67
68 // TODO: check if it is okay to resave the gradient on loading
69 QBuffer buffer;
70 buffer.open(QBuffer::WriteOnly);
71 gradient->saveToDevice(&buffer);
72
73 resources << KoEmbeddedResource(KoResourceSignature(ResourceType::Gradients, KoMD5Generator::generateHash(buffer.data()), gradient->filename(), gradient->name()), buffer.data());
74 }
75
76 return resources;
77}
static QString generateHash(const QString &filename)
generateHash reads the given file and generates a hex-encoded md5sum for the file.
A simple wrapper object for the main information about the resource.

References KoMD5Generator::generateHash(), gradient(), ResourceType::Gradients, and KisFilterConfiguration::version.

◆ gradient()

KoAbstractGradientSP KisGradientMapFilterConfiguration::gradient ( KoAbstractGradientSP fallbackGradient = nullptr) const

Definition at line 79 of file KisGradientMapFilterConfiguration.cpp.

80{
81 if (version() == 1) {
82
83 QString md5sum = this->getString("md5sum");
84 QString gradientName = this->getString("gradientName");
86
87 KoAbstractGradientSP resourceGradient = source.bestMatch(md5sum, "", gradientName);
88
89 if (resourceGradient) {
91 gradient->setValid(true);
92 return gradient;
93 } else {
94 qWarning() << "Could not find gradient" << getString("md5sum") << getString("gradientName");
95 }
96 } else if (version() == 2) {
97 QDomDocument document;
98 if (document.setContent(getString("gradientXML", ""))) {
99 const QDomElement gradientElement = document.firstChildElement();
100 if (!gradientElement.isNull()) {
101 const QString gradientType = gradientElement.attribute("type");
103 if (gradientType == "stop") {
104 gradient = KoStopGradient::fromXML(gradientElement).clone().dynamicCast<KoAbstractGradient>();
105 } else if (gradientType == "segment") {
106 gradient = KoSegmentGradient::fromXML(gradientElement).clone().dynamicCast<KoAbstractGradient>();
107 }
108 if (gradient) {
109 gradient->setName(gradientElement.attribute("name", ""));
110 gradient->setFilename(gradient->name() + gradient->defaultFileExtension());
111 gradient->setValid(true);
112 return gradient;
113 }
114 }
115 }
116 }
117 return fallbackGradient ? fallbackGradient : defaultGradient(resourcesInterface());
118}
KisMagneticGraph::vertex_descriptor source(typename KisMagneticGraph::edge_descriptor e, KisMagneticGraph g)
static KoAbstractGradientSP defaultGradient(KisResourcesInterfaceSP resourcesInterface)
KoResourceSP clone() const override
static KoSegmentGradient fromXML(const QDomElement &elt)
fromXML get a segment gradient from xml.
KoResourceSP clone() const override
static KoStopGradient fromXML(const QDomElement &elt)
fromXML convert a gradient from xml.
KoStopGradientSP toStopGradient(const QGradientStops &gradient)
Convert a QGradientStop list to a KoStopGradientSP.
QString getString(const QString &name, const QString &def=QString()) const

References KoSegmentGradient::clone(), KoStopGradient::clone(), defaultGradient(), KoSegmentGradient::fromXML(), KoStopGradient::fromXML(), KisPropertiesConfiguration::getString(), gradient(), ResourceType::Gradients, KisFilterConfiguration::resourcesInterface, source(), KisGradientConversion::toStopGradient(), and KisFilterConfiguration::version.

◆ linkedResources()

QList< KoResourceLoadResult > KisGradientMapFilterConfiguration::linkedResources ( KisResourcesInterfaceSP globalResourcesInterface) const
overridevirtual
Returns
all the resources that are needed but (*this) filter and are not embedded into it. The resources are fetched from globalResourcesInterface. If fetching of some resources is failed, then (*this) filter is invalid.

Reimplemented from KisFilterConfiguration.

Definition at line 38 of file KisGradientMapFilterConfiguration.cpp.

39{
41
42 // only the first version of the filter loaded the gradient by name
43 if (version() == 1) {
45 if (gradient) {
46 resources << gradient;
47 } else {
48 QString md5sum = this->getString("md5sum");
49 QString gradientName = this->getString("gradientName");
50
51 resources << KoResourceSignature(ResourceType::Gradients, md5sum, "", gradientName);
52 }
53 }
54
55 resources << KisDitherWidget::prepareLinkedResources(*this, "dither/", globalResourcesInterface);
56
57 return resources;
58}
static QList< KoResourceLoadResult > prepareLinkedResources(const KisFilterConfiguration &config, const QString &prefix, KisResourcesInterfaceSP resourcesInterface)

References KisPropertiesConfiguration::getString(), gradient(), ResourceType::Gradients, KisDitherWidget::prepareLinkedResources(), and KisFilterConfiguration::version.

◆ setColorMode()

void KisGradientMapFilterConfiguration::setColorMode ( int newColorMode)

Definition at line 149 of file KisGradientMapFilterConfiguration.cpp.

150{
151 setProperty("colorMode", newColorMode);
152}
virtual void setProperty(const QString &name, const QVariant &value)

References KisPropertiesConfiguration::setProperty().

◆ setDefaults()

void KisGradientMapFilterConfiguration::setDefaults ( )

Definition at line 154 of file KisGradientMapFilterConfiguration.cpp.

155{
156 setGradient(nullptr);
159}
static void factoryConfiguration(KisPropertiesConfiguration &config, const QString &prefix="")
void setGradient(KoAbstractGradientSP newGradient)

References defaultColorMode(), KisDitherWidget::factoryConfiguration(), setColorMode(), and setGradient().

◆ setGradient()

void KisGradientMapFilterConfiguration::setGradient ( KoAbstractGradientSP newGradient)

Definition at line 125 of file KisGradientMapFilterConfiguration.cpp.

126{
127 if (!newGradient) {
128 setProperty("gradientXML", "");
129 return;
130 }
131
132 QDomDocument document;
133 QDomElement gradientElement = document.createElement("gradient");
134 gradientElement.setAttribute("name", newGradient->name());
135 gradientElement.setAttribute("md5sum", newGradient->md5Sum());
136
137 if (newGradient.dynamicCast<KoStopGradient>()) {
138 KoStopGradient *gradient = static_cast<KoStopGradient*>(newGradient.data());
139 gradient->toXML(document, gradientElement);
140 } else if (newGradient.dynamicCast<KoSegmentGradient>()) {
141 KoSegmentGradient *gradient = static_cast<KoSegmentGradient*>(newGradient.data());
142 gradient->toXML(document, gradientElement);
143 }
144
145 document.appendChild(gradientElement);
146 setProperty("gradientXML", document.toString());
147}

References gradient(), and KisPropertiesConfiguration::setProperty().


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