Krita Source Code Documentation
Loading...
Searching...
No Matches
KoResourceLoadResult.cpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2021 Dmitry Kazakov <dimula73@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
#include "
KoResourceLoadResult.h
"
7
8
#include <variant>
9
#include <
KisMpl.h
>
10
11
#include <
KoResource.h
>
12
13
struct
KoResourceLoadResult::Private
14
{
15
// XXX: this should take a monostate for null resources
16
// AAA: no, it shouldn't, null resource must be a KoResourceSignature only
17
std::variant<KoResourceSP, KoEmbeddedResource, KoResourceSignature>
value
;
18
};
19
20
KoResourceLoadResult::KoResourceLoadResult
(
KoResourceSP
resource)
21
: m_d(new
Private
)
22
{
23
m_d
->value =
resource
;
24
}
25
26
KoResourceLoadResult::KoResourceLoadResult
(
KoEmbeddedResource
embeddedResource)
27
: m_d(new
Private
)
28
{
29
m_d
->value =
embeddedResource
;
30
}
31
32
KoResourceLoadResult::KoResourceLoadResult
(
KoResourceSignature
signature)
33
: m_d(new
Private
)
34
{
35
m_d
->value =
signature
;
36
}
37
38
KoResourceLoadResult::KoResourceLoadResult
(
const
KoResourceLoadResult
&rhs)
39
: m_d(new
Private
(*rhs.m_d))
40
{
41
}
42
43
KoResourceLoadResult
&
KoResourceLoadResult::operator=
(
const
KoResourceLoadResult
&rhs)
44
{
45
m_d
->value = rhs.
m_d
->value;
46
return
*
this
;
47
}
48
49
KoResourceLoadResult::~KoResourceLoadResult
()
50
{
51
}
52
53
KoResourceSP
KoResourceLoadResult::resource
() const noexcept
54
{
55
return
std::holds_alternative<KoResourceSP>(
m_d
->value) ? std::get<KoResourceSP>(
m_d
->value) :
KoResourceSP
();
56
}
57
58
KoEmbeddedResource
KoResourceLoadResult::embeddedResource
() const noexcept
59
{
60
return
std::holds_alternative<KoEmbeddedResource>(
m_d
->value) ? std::get<KoEmbeddedResource>(
m_d
->value) :
KoEmbeddedResource
();
61
}
62
63
KoResourceSignature
KoResourceLoadResult::signature
()
const
64
{
65
return
std::visit(
66
kismpl::overloaded
{
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
}
72
73
KoResourceLoadResult::Type
KoResourceLoadResult::type
()
const
74
{
75
return
std::visit(
76
kismpl::overloaded
{
77
[](
auto
) {
return
FailedLink
; },
78
[](
const
KoResourceSP
&) {
return
ExistingResource
; },
79
[](
const
KoEmbeddedResource
&) {
return
EmbeddedResource
; }
80
},
m_d
->value);
81
}
KisMpl.h
KoResourceLoadResult.h
KoResourceSP
QSharedPointer< KoResource > KoResourceSP
Definition
KoResourceLoadResult.h:14
KoResource.h
KoEmbeddedResource
Definition
KoEmbeddedResource.h:19
KoResourceLoadResult
Definition
KoResourceLoadResult.h:17
KoResourceLoadResult::operator=
KoResourceLoadResult & operator=(const KoResourceLoadResult &rhs)
Definition
KoResourceLoadResult.cpp:43
KoResourceLoadResult::type
Type type() const
Definition
KoResourceLoadResult.cpp:73
KoResourceLoadResult::KoResourceLoadResult
KoResourceLoadResult(KoResourceSP resource)
Definition
KoResourceLoadResult.cpp:20
KoResourceLoadResult::resource
KoResourceSP resource() const noexcept
Definition
KoResourceLoadResult.cpp:53
KoResourceLoadResult::embeddedResource
KoEmbeddedResource embeddedResource() const noexcept
Definition
KoResourceLoadResult.cpp:58
KoResourceLoadResult::m_d
const QScopedPointer< Private > m_d
Definition
KoResourceLoadResult.h:86
KoResourceLoadResult::~KoResourceLoadResult
~KoResourceLoadResult()
Definition
KoResourceLoadResult.cpp:49
KoResourceLoadResult::signature
KoResourceSignature signature() const
Definition
KoResourceLoadResult.cpp:63
KoResourceLoadResult::Type
Type
Definition
KoResourceLoadResult.h:19
KoResourceLoadResult::EmbeddedResource
@ EmbeddedResource
Definition
KoResourceLoadResult.h:21
KoResourceLoadResult::ExistingResource
@ ExistingResource
Definition
KoResourceLoadResult.h:20
KoResourceLoadResult::FailedLink
@ FailedLink
Definition
KoResourceLoadResult.h:22
KoResourceSignature
A simple wrapper object for the main information about the resource.
Definition
KoResourceSignature.h:21
QSharedPointer< KoResource >
Private
Definition
SvgTransformParser.cpp:20
KoResourceLoadResult::Private
Definition
KoResourceLoadResult.cpp:14
KoResourceLoadResult::Private::value
std::variant< KoResourceSP, KoEmbeddedResource, KoResourceSignature > value
Definition
KoResourceLoadResult.cpp:17
kismpl::overloaded
Definition
KisMpl.h:144
libs
resources
KoResourceLoadResult.cpp
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52