Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_texture_chooser.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2017 Scott Petrovic <scottpetrovic@gmail.com>
3
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
10
11#include <KisGradientChooser.h>
12
13KisTextureChooser::KisTextureChooser(KisBrushTextureFlags flags, QWidget *parent)
14 : QWidget(parent)
15{
16 setupUi(this);
17
18 textureSelectorWidget->setGrayscalePreview(true);
19 textureSelectorWidget->setCurrentItem(0);
20
21 scaleSlider->setRange(0.0, 2.0, 2);
22 scaleSlider->setSingleStep(0.01);
23 scaleSlider->setValue(1.0);
24 scaleSlider->addMultiplier(0.1);
25 scaleSlider->addMultiplier(2);
26 scaleSlider->addMultiplier(10);
27
28 brightnessSlider->setRange(-1.0, 1.0, 2);
29 brightnessSlider->setSingleStep(0.01);
30 brightnessSlider->setValue(0.0);
31 brightnessSlider->setToolTip(i18n("Makes texture lighter or darker"));
32
33 contrastSlider->setRange(0.0, 2.0, 2);
34 contrastSlider->setSingleStep(0.01);
35 contrastSlider->setValue(1.0);
36
37 neutralPointSlider->setRange(0.0, 1.0, 2);
38 neutralPointSlider->setSingleStep(0.01);
39 neutralPointSlider->setValue(0.5);
40 neutralPointSlider->setToolTip(i18n("Set gray value to be considered neutral for lightness mode"));
41
42 offsetSliderX->setSuffix(i18n(" px"));
43
44 offsetSliderY->setSuffix(i18n(" px"));
45
46
47 QVector<std::pair<QString, int>> texturingModes;
48
49 texturingModes
52
53 if (flags & SupportsLightnessMode) {
54 texturingModes << std::make_pair(i18nc("Lightness Map blend mode for brush texture", "Lightness Map"), KisTextureOptionData::LIGHTNESS);
55 }
56
57 if (flags & SupportsGradientMode) {
58 texturingModes << std::make_pair(i18nc("Gradient Map blend mode for brush texture", "Gradient Map"), KisTextureOptionData::GRADIENT);
59 }
60
61 texturingModes
70 << std::make_pair(i18nc("Height blend mode for brush texture", "Height"), KisTextureOptionData::HEIGHT)
71 << std::make_pair(i18nc("Linear Height blend mode for brush texture", "Linear Height"), KisTextureOptionData::LINEAR_HEIGHT)
72 << std::make_pair(i18nc("Height (Photoshop) blend mode for brush texture", "Height (Photoshop)"), KisTextureOptionData::HEIGHT_PHOTOSHOP)
73 << std::make_pair(i18nc("Linear Height (Photoshop) blend mode for brush texture", "Linear Height (Photoshop)"), KisTextureOptionData::LINEAR_HEIGHT_PHOTOSHOP);
74
75 for (auto it = texturingModes.begin(); it != texturingModes.end(); ++it) {
76 cmbTexturingMode->addItem(it->first, it->second);
77 }
78
79 cmbTexturingMode->setCurrentIndex(KisTextureOptionData::SUBTRACT);
80
81 QStringList cutOffPolicies;
82 cutOffPolicies << i18n("Cut Off Disabled") << i18n("Cut Off Brush") << i18n("Cut Off Pattern");
83 cmbCutoffPolicy->addItems(cutOffPolicies);
84
85
86 cutoffSlider->setToolTip(i18n("When pattern texture values are outside the range specified"
87 " by the slider, the cut-off policy will be applied."));
88
89 chkInvert->setChecked(false);
90 chkAutoInvertOnErase->setChecked(false);
91
92}
93
98
100{
101 int i = 0;
102 for (; i < cmbTexturingMode->count(); i++) {
103 if (cmbTexturingMode->itemData(i) == mode) {
104 cmbTexturingMode->setCurrentIndex(i);
105 }
106 }
107
108 return i < cmbTexturingMode->count();
109}
110
112{
113 return KisTextureOptionData::TexturingMode(cmbTexturingMode->currentData().value<int>());
114}
@ SupportsGradientMode
@ SupportsLightnessMode
const QString COMPOSITE_DARKEN
const QString COMPOSITE_OVERLAY
const QString COMPOSITE_DODGE
const QString COMPOSITE_LINEAR_BURN
const QString COMPOSITE_MULT
const QString COMPOSITE_SUBTRACT
const QString COMPOSITE_BURN
const QString COMPOSITE_LINEAR_DODGE
const QString COMPOSITE_HARD_MIX_SOFTER_PHOTOSHOP
const QString COMPOSITE_HARD_MIX_PHOTOSHOP
KisTextureChooser(KisBrushTextureFlags flags, QWidget *parent=0)
bool selectTexturingMode(KisTextureOptionData::TexturingMode mode)
KisTextureOptionData::TexturingMode texturingMode() const
static const KoCompositeOpRegistry & instance()