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

#include <KoResourceLoadResult.h>

Classes

struct  Private
 

Public Types

enum  Type { ExistingResource , EmbeddedResource , FailedLink }
 

Public Member Functions

KoEmbeddedResource embeddedResource () const noexcept
 
 KoResourceLoadResult (const KoResourceLoadResult &rhs)
 
 KoResourceLoadResult (KoEmbeddedResource embeddedRresource)
 
 KoResourceLoadResult (KoResourceSignature signature)
 
 KoResourceLoadResult (KoResourceSP resource)
 
template<typename T , typename = typename std::is_convertible<T*, KoResource*>::type>
 KoResourceLoadResult (QSharedPointer< T > resource)
 
KoResourceLoadResultoperator= (const KoResourceLoadResult &rhs)
 
template<typename T >
QSharedPointer< T > resource () const
 
KoResourceSP resource () const noexcept
 
KoResourceSignature signature () const
 
Type type () const
 
 ~KoResourceLoadResult ()
 

Private Attributes

const QScopedPointer< Privatem_d
 

Detailed Description

Definition at line 16 of file KoResourceLoadResult.h.

Member Enumeration Documentation

◆ Type

Enumerator
ExistingResource 
EmbeddedResource 
FailedLink 

Definition at line 19 of file KoResourceLoadResult.h.

Constructor & Destructor Documentation

◆ KoResourceLoadResult() [1/5]

KoResourceLoadResult::KoResourceLoadResult ( KoResourceSP resource)

Definition at line 20 of file KoResourceLoadResult.cpp.

21 : m_d(new Private)
22{
23 m_d->value = resource;
24}
KoResourceSP resource() const noexcept
const QScopedPointer< Private > m_d

References m_d, and resource().

◆ KoResourceLoadResult() [2/5]

KoResourceLoadResult::KoResourceLoadResult ( KoEmbeddedResource embeddedRresource)

Definition at line 26 of file KoResourceLoadResult.cpp.

27 : m_d(new Private)
28{
29 m_d->value = embeddedResource;
30}
KoEmbeddedResource embeddedResource() const noexcept

References embeddedResource(), and m_d.

◆ KoResourceLoadResult() [3/5]

KoResourceLoadResult::KoResourceLoadResult ( KoResourceSignature signature)

Definition at line 32 of file KoResourceLoadResult.cpp.

33 : m_d(new Private)
34{
35 m_d->value = signature;
36}
KoResourceSignature signature() const

References m_d, and signature().

◆ KoResourceLoadResult() [4/5]

template<typename T , typename = typename std::is_convertible<T*, KoResource*>::type>
KoResourceLoadResult::KoResourceLoadResult ( QSharedPointer< T > resource)
inline

Definition at line 30 of file KoResourceLoadResult.h.

32 {
33 }
QSharedPointer< KoResource > KoResourceSP
KoResourceLoadResult(KoResourceSP resource)

◆ KoResourceLoadResult() [5/5]

KoResourceLoadResult::KoResourceLoadResult ( const KoResourceLoadResult & rhs)

Definition at line 38 of file KoResourceLoadResult.cpp.

39 : m_d(new Private(*rhs.m_d))
40{
41}

◆ ~KoResourceLoadResult()

KoResourceLoadResult::~KoResourceLoadResult ( )

Definition at line 49 of file KoResourceLoadResult.cpp.

50{
51}

Member Function Documentation

◆ embeddedResource()

KoEmbeddedResource KoResourceLoadResult::embeddedResource ( ) const
noexcept

Returns the embedded resource, for which there was no instance has been found in the resource database. This resource should be imported into the database manually.

Returns a valid object only when type() is equal to EmbeddedResource

Definition at line 58 of file KoResourceLoadResult.cpp.

59{
60 return std::holds_alternative<KoEmbeddedResource>(m_d->value) ? std::get<KoEmbeddedResource>(m_d->value) : KoEmbeddedResource();
61}

References m_d.

◆ operator=()

KoResourceLoadResult & KoResourceLoadResult::operator= ( const KoResourceLoadResult & rhs)

Definition at line 43 of file KoResourceLoadResult.cpp.

44{
45 m_d->value = rhs.m_d->value;
46 return *this;
47}

References m_d.

◆ resource() [1/2]

template<typename T >
QSharedPointer< T > KoResourceLoadResult::resource ( ) const
inline

Same as resource(), but returns a resource that is dynamically cast to the destination type T

Definition at line 54 of file KoResourceLoadResult.h.

54 {
55 return this->resource().dynamicCast<T>();
56 }

◆ resource() [2/2]

KoResourceSP KoResourceLoadResult::resource ( ) const
noexcept

Returns existing resource that has been loaded from the Krita database.

Returns non-null pointer only when type() is equal to ExistingResource

Definition at line 53 of file KoResourceLoadResult.cpp.

54{
55 return std::holds_alternative<KoResourceSP>(m_d->value) ? std::get<KoResourceSP>(m_d->value) : KoResourceSP();
56}

References m_d.

◆ signature()

KoResourceSignature KoResourceLoadResult::signature ( ) const

Return a signature for the embedded/linked resource. This is the only information available when type() is equal to FailedLink

Definition at line 63 of file KoResourceLoadResult.cpp.

64{
65 return std::visit(
67 [](const KoResourceSignature &signature) { return signature; },
68 [](const KoResourceSP &resource) { return resource->signature(); },
69 [](const KoEmbeddedResource &resource) { return resource.signature(); }
70 }, m_d->value);
71}
A simple wrapper object for the main information about the resource.

References m_d, resource(), and signature().

◆ type()

KoResourceLoadResult::Type KoResourceLoadResult::type ( ) const

Describes the result of the resource loading. A copy of the resource can be either found in the resource database, it can be loaded from some embedded storage (and yet should be imported into the database manually) or it can just fail to be found (e.g. when the resource is not embedded and still not found in the database).

Definition at line 73 of file KoResourceLoadResult.cpp.

74{
75 return std::visit(
77 [](auto) { return FailedLink; },
78 [](const KoResourceSP &) { return ExistingResource; },
79 [](const KoEmbeddedResource &) { return EmbeddedResource; }
80 }, m_d->value);
81}

References EmbeddedResource, ExistingResource, FailedLink, and m_d.

Member Data Documentation

◆ m_d

const QScopedPointer<Private> KoResourceLoadResult::m_d
private

Definition at line 86 of file KoResourceLoadResult.h.


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