Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_color_source_option.cpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2011 Cyrille Berger <cberger@cberger.net>
3
*
4
* SPDX-License-Identifier: LGPL-2.0-or-later
5
*/
6
7
#include "
kis_color_source_option.h
"
8
9
#include <
kis_properties_configuration.h
>
10
#include "
kis_color_source.h
"
11
#include <
kis_painter.h
>
12
#include <
kis_paint_device.h
>
13
#include <
resources/KoPattern.h
>
14
#include <
KisColorSourceOptionData.h
>
15
16
struct
KisColorSourceOption::Private
{
17
Private
()
18
:
type
(
KisColorSourceOptionData
::PLAIN)
19
{}
20
21
KisColorSourceOptionData::Type
type
;
22
};
23
24
KisColorSourceOption::KisColorSourceOption
(
const
KisPropertiesConfiguration
*setting)
25
: d(new
Private
)
26
{
27
KisColorSourceOptionData
data;
28
data.
read
(setting);
29
d
->type = data.
type
;
30
}
31
32
KisColorSourceOption::~KisColorSourceOption
()
33
{
34
}
35
36
KisColorSource
*
KisColorSourceOption::createColorSource
(
const
KisPainter
* _painter)
const
37
{
38
Q_ASSERT(_painter);
39
40
switch
(
d
->type) {
41
case
KisColorSourceOptionData::PLAIN
:
42
return
new
KisPlainColorSource
(_painter->
backgroundColor
(), _painter->
paintColor
());
43
case
KisColorSourceOptionData::GRADIENT
:
44
return
new
KisGradientColorSource
(_painter->
gradient
(), _painter->
paintColor
().
colorSpace
());
45
case
KisColorSourceOptionData::UNIFORM_RANDOM
:
46
return
new
KisUniformRandomColorSource
();
47
case
KisColorSourceOptionData::TOTAL_RANDOM
:
48
return
new
KisTotalRandomColorSource
();
49
case
KisColorSourceOptionData::PATTERN
: {
50
if
(_painter->
pattern
()) {
51
KisPaintDevice
* dev =
new
KisPaintDevice
(_painter->
paintColor
().
colorSpace
(), _painter->
pattern
()->name());
52
dev->
convertFromQImage
(_painter->
pattern
()->pattern(), 0);
53
return
new
KoPatternColorSource
(dev, _painter->
pattern
()->width(), _painter->
pattern
()->height(),
false
);
54
}
55
break
;
56
}
57
case
KisColorSourceOptionData::PATTERN_LOCKED
: {
58
if
(_painter->
pattern
()) {
59
KisPaintDevice
* dev =
new
KisPaintDevice
(_painter->
paintColor
().
colorSpace
(), _painter->
pattern
()->name());
60
dev->
convertFromQImage
(_painter->
pattern
()->pattern(), 0);
61
return
new
KoPatternColorSource
(dev, _painter->
pattern
()->width(), _painter->
pattern
()->height(),
true
);
62
}
63
64
}
65
}
66
// Fallback in case the patterns are messed up
67
return
new
KisPlainColorSource
(_painter->
backgroundColor
(), _painter->
paintColor
());
68
}
KisColorSourceOptionData.h
KoPattern.h
KisColorSourceOption::d
const QScopedPointer< Private > d
Definition
kis_color_source_option.h:28
KisColorSourceOption::~KisColorSourceOption
~KisColorSourceOption()
Definition
kis_color_source_option.cpp:32
KisColorSourceOption::KisColorSourceOption
KisColorSourceOption(const KisPropertiesConfiguration *setting)
Definition
kis_color_source_option.cpp:24
KisColorSourceOption::createColorSource
KisColorSource * createColorSource(const KisPainter *_painter) const
Definition
kis_color_source_option.cpp:36
KisColorSource
Definition
kis_color_source.h:30
KisGradientColorSource
Definition
kis_color_source.h:79
KisPaintDevice
Definition
kis_paint_device.h:68
KisPaintDevice::convertFromQImage
void convertFromQImage(const QImage &image, const KoColorProfile *profile, qint32 offsetX=0, qint32 offsetY=0)
Definition
kis_paint_device.cc:1595
KisPainter
Definition
kis_painter.h:66
KisPainter::paintColor
KoColor paintColor
Definition
kis_painter_p.h:35
KisPainter::backgroundColor
KoColor backgroundColor
Definition
kis_painter_p.h:36
KisPainter::gradient
KoAbstractGradientSP gradient
Definition
kis_painter_p.h:51
KisPainter::pattern
KoPatternSP pattern
Definition
kis_painter_p.h:43
KisPlainColorSource
Definition
kis_color_source.h:67
KisTotalRandomColorSource
Definition
kis_color_source.h:97
KisUniformRandomColorSource
Definition
kis_color_source.h:89
KoColor::colorSpace
const KoColorSpace * colorSpace() const
return the current colorSpace
Definition
KoColor.h:82
KoPatternColorSource
Definition
kis_color_source.h:113
kis_color_source.h
kis_color_source_option.h
kis_paint_device.h
kis_painter.h
kis_properties_configuration.h
Private
Definition
SvgTransformParser.cpp:20
KisColorSourceOptionData
Definition
KisColorSourceOptionData.h:17
KisColorSourceOptionData::Type
Type
Definition
KisColorSourceOptionData.h:18
KisColorSourceOptionData::PLAIN
@ PLAIN
Definition
KisColorSourceOptionData.h:19
KisColorSourceOptionData::UNIFORM_RANDOM
@ UNIFORM_RANDOM
Definition
KisColorSourceOptionData.h:21
KisColorSourceOptionData::TOTAL_RANDOM
@ TOTAL_RANDOM
Definition
KisColorSourceOptionData.h:22
KisColorSourceOptionData::GRADIENT
@ GRADIENT
Definition
KisColorSourceOptionData.h:20
KisColorSourceOptionData::PATTERN_LOCKED
@ PATTERN_LOCKED
Definition
KisColorSourceOptionData.h:24
KisColorSourceOptionData::PATTERN
@ PATTERN
Definition
KisColorSourceOptionData.h:23
KisColorSourceOptionData::read
bool read(const KisPropertiesConfiguration *setting)
Definition
KisColorSourceOptionData.cpp:37
KisColorSourceOptionData::type
Type type
Definition
KisColorSourceOptionData.h:31
KisColorSourceOption::Private
Definition
kis_color_source_option.cpp:16
KisColorSourceOption::Private::type
KisColorSourceOptionData::Type type
Definition
kis_color_source_option.cpp:21
KisColorSourceOption::Private::Private
Private()
Definition
kis_color_source_option.cpp:17
KisPropertiesConfiguration
Definition
kis_properties_configuration.cc:26
plugins
paintops
libpaintop
kis_color_source_option.cpp
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52