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

#include <KisEmbeddedTextureData.h>

+ Inheritance diagram for KisEmbeddedTextureData:

Public Member Functions

bool isNull () const
 
KoResourceLoadResult loadLinkedPattern (KisResourcesInterfaceSP resourcesInterface) const
 
bool read (const KisPropertiesConfiguration *setting)
 
void write (KisPropertiesConfiguration *setting) const
 

Static Public Member Functions

static KisEmbeddedTextureData fromPattern (KoPatternSP pattern)
 

Public Attributes

QString fileName
 
QString md5Base64
 
QString md5sum
 
QString name
 
QString patternBase64
 

Private Member Functions

KoResourceLoadResult tryFetchPattern (KisResourcesInterfaceSP resourcesInterface) const
 
KoResourceLoadResult tryLoadEmbeddedPattern () const
 

Friends

bool operator== (const KisEmbeddedTextureData &lhs, const KisEmbeddedTextureData &rhs)
 

Detailed Description

Definition at line 17 of file KisEmbeddedTextureData.h.

Member Function Documentation

◆ fromPattern()

KisEmbeddedTextureData KisEmbeddedTextureData::fromPattern ( KoPatternSP pattern)
static

Definition at line 19 of file KisEmbeddedTextureData.cpp.

20{
22
23 data.md5Base64 = QByteArray::fromHex(pattern->md5Sum().toLatin1()).toBase64();
24 data.md5sum = pattern->md5Sum();
25 data.fileName = pattern->filename();
26 data.name = pattern->name();
27
28 return data;
29}

References fileName, md5Base64, md5sum, and name.

◆ isNull()

bool KisEmbeddedTextureData::isNull ( ) const

Definition at line 14 of file KisEmbeddedTextureData.cpp.

15{
16 return md5Base64.isEmpty() && md5sum.isEmpty() && fileName.isEmpty() && name.isEmpty();
17}

References fileName, md5Base64, md5sum, and name.

◆ loadLinkedPattern()

KoResourceLoadResult KisEmbeddedTextureData::loadLinkedPattern ( KisResourcesInterfaceSP resourcesInterface) const

Definition at line 72 of file KisEmbeddedTextureData.cpp.

73{
74 KoResourceLoadResult result = tryFetchPattern(resourcesInterface);
75
76 if (result.type() == KoResourceLoadResult::FailedLink && !patternBase64.isEmpty()) {
77 result = tryLoadEmbeddedPattern();
78 }
79
80 return result;
81}
KoResourceLoadResult tryFetchPattern(KisResourcesInterfaceSP resourcesInterface) const
KoResourceLoadResult tryLoadEmbeddedPattern() const

References KoResourceLoadResult::FailedLink, patternBase64, tryFetchPattern(), tryLoadEmbeddedPattern(), and KoResourceLoadResult::type().

◆ read()

bool KisEmbeddedTextureData::read ( const KisPropertiesConfiguration * setting)

Definition at line 83 of file KisEmbeddedTextureData.cpp.

84{
85 md5Base64 = setting->getString("Texture/Pattern/PatternMD5");
86 md5sum = setting->getString("Texture/Pattern/PatternMD5Sum");
87 fileName = QFileInfo(setting->getString("Texture/Pattern/PatternFileName")).fileName();
88 name = setting->getString("Texture/Pattern/Name");
89 patternBase64 = setting->getString("Texture/Pattern/Pattern");
90
91 return true;
92}
QString getString(const QString &name, const QString &def=QString()) const

References fileName, KisPropertiesConfiguration::getString(), md5Base64, md5sum, name, and patternBase64.

◆ tryFetchPattern()

KoResourceLoadResult KisEmbeddedTextureData::tryFetchPattern ( KisResourcesInterfaceSP resourcesInterface) const
private

Definition at line 32 of file KisEmbeddedTextureData.cpp.

33{
34 auto resourceSourceAdapter = resourcesInterface->source<KoPattern>(ResourceType::Patterns);
35
36 QString effectiveMd5Sum = md5sum;
37
38 if (effectiveMd5Sum.isEmpty()) {
39 const QByteArray md5 = QByteArray::fromBase64(md5Base64.toLatin1());
40 effectiveMd5Sum = md5.toHex();
41 }
42
43 return resourceSourceAdapter.bestMatchLoadResult(effectiveMd5Sum, fileName, name);
44}
Write API docs here.
Definition KoPattern.h:21
const QString Patterns

References fileName, md5Base64, md5sum, name, and ResourceType::Patterns.

◆ tryLoadEmbeddedPattern()

KoResourceLoadResult KisEmbeddedTextureData::tryLoadEmbeddedPattern ( ) const
private

Definition at line 46 of file KisEmbeddedTextureData.cpp.

47{
48 QString effectiveMd5Sum = md5sum;
49
50 if (effectiveMd5Sum.isEmpty()) {
51 const QByteArray md5 = QByteArray::fromBase64(md5Base64.toLatin1());
52 effectiveMd5Sum = md5.toHex();
53 }
54
55 QString effectiveName = name;
56
57 if (effectiveName.isEmpty() || effectiveName != QFileInfo(effectiveName).fileName()) {
58 QFileInfo info(effectiveName);
59 effectiveName = info.completeBaseName();
60 }
61
63 // return a fail-link pattern
64 return KoResourceSignature(ResourceType::Patterns, effectiveMd5Sum, fileName, effectiveName);
65 }
66
67 const QByteArray ba = QByteArray::fromBase64(patternBase64.toLatin1());
68 return KoEmbeddedResource(KoResourceSignature(ResourceType::Patterns, effectiveMd5Sum, fileName, effectiveName), ba);
69}
A simple wrapper object for the main information about the resource.
#define KIS_SAFE_ASSERT_RECOVER(cond)
Definition kis_assert.h:126

References fileName, KIS_SAFE_ASSERT_RECOVER, md5Base64, md5sum, name, patternBase64, and ResourceType::Patterns.

◆ write()

void KisEmbeddedTextureData::write ( KisPropertiesConfiguration * setting) const

Definition at line 94 of file KisEmbeddedTextureData.cpp.

95{
96 setting->setProperty("Texture/Pattern/PatternMD5", md5Base64);
97 setting->setProperty("Texture/Pattern/PatternMD5Sum", md5sum);
98 setting->setProperty("Texture/Pattern/PatternFileName", fileName);
99 setting->setProperty("Texture/Pattern/Name", name);
100}
virtual void setProperty(const QString &name, const QVariant &value)

References fileName, md5Base64, md5sum, name, and KisPropertiesConfiguration::setProperty().

Friends And Related Symbol Documentation

◆ operator==

bool operator== ( const KisEmbeddedTextureData & lhs,
const KisEmbeddedTextureData & rhs )
friend

Definition at line 20 of file KisEmbeddedTextureData.h.

20 {
21 return lhs.md5Base64 == rhs.md5Base64 &&
22 lhs.md5sum == rhs.md5sum &&
23 lhs.fileName == rhs.fileName &&
24 lhs.name == rhs.name &&
26 }

Member Data Documentation

◆ fileName

QString KisEmbeddedTextureData::fileName

Definition at line 30 of file KisEmbeddedTextureData.h.

◆ md5Base64

QString KisEmbeddedTextureData::md5Base64

Definition at line 28 of file KisEmbeddedTextureData.h.

◆ md5sum

QString KisEmbeddedTextureData::md5sum

Definition at line 29 of file KisEmbeddedTextureData.h.

◆ name

QString KisEmbeddedTextureData::name

Definition at line 31 of file KisEmbeddedTextureData.h.

◆ patternBase64

QString KisEmbeddedTextureData::patternBase64

Definition at line 32 of file KisEmbeddedTextureData.h.


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