12#include <lager/lenses/tuple.hpp>
13#include <lager/constant.hpp>
17 return lager::lenses::getset(
18 [flag] (
const KoColorConversionTransformation::ConversionFlags &
value) ->
bool {
19 return value.testFlag(flag);
21 [flag] (KoColorConversionTransformation::ConversionFlags
value,
const bool &val){
22 value.setFlag(flag, val);
43 return {
false,
false};
46 switch (displayMode) {
48 return {globalUseBPC,
false};
50 return {
false,
false};
52 return {localUseBPC,
true};
55 Q_UNREACHABLE_RETURN({
false,
false});
64 return {adaptationFlag,
true};
72 values << i18nc(
"Color conversion intent",
"Perceptual");
73 values << i18nc(
"Color conversion intent",
"Relative Colorimetric");
74 values << i18nc(
"Color conversion intent",
"Saturation");
75 values << i18nc(
"Color conversion intent",
"Absolute Colorimetric");
78#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
79 toolTips <<
"" <<
"" <<
"" <<
"";
84 return {values,
static_cast<int>(intent), enabled, toolTips};
92 values << i18nc(
"Display Mode",
"Use global display settings");
93 values << i18nc(
"Display Mode",
"Simulate paper white and black");
94 values << i18nc(
"Display Mode",
"Custom");
96 toolTips << i18nc(
"@info:tooltip",
"Use Rendering Intent, Blackpoint compensation and Adaptation set in the color management configuration.");
97 toolTips << i18nc(
"@info:tooltip",
"Simulate paper by using absolute colorimetric and disabling white point adaptation and blackpoint compensation.");
98 toolTips << i18nc(
"@info:tooltip",
"Select custom settings for the second transform.");
100 return {values,
static_cast<int>(mode),
true, toolTips};
120 lager::make_constant(
true))
121 .map(&calcIntentComboBoxState)
129 .map(&calcModeComboBoxState)
138 lager::with(
LAGER_QT(displayTransformMode),
141 .zoom(lager::lenses::first))
142 .map(&calcEffectiveDisplayIntent)
147 LAGER_QT(enableCustomDisplayConfig))
148 .map(&calcIntentComboBoxState)
152 ,
LAGER_QT(effectiveDispBlackPointCompensationState) {
153 lager::with(
LAGER_QT(displayTransformMode),
155 LAGER_QT(dispBlackPointCompensation),
157 .zoom(lager::lenses::second)
159 .map(&calcEffectiveUseBPCState)
168 lager::with(
LAGER_QT(displayTransformMode),
170 LAGER_QT(adaptationSwitch)).map(&calcEffectiveAdaptationSwitchState)
float value(const T *src, size_t ch)
LAGER_QT(proofingSpaceTuple)
std::pair< KoColorConversionTransformation::Intent, KoColorConversionTransformation::ConversionFlags > Options
void setProofingColorSpaceIdAtomic(const QString &model, const QString &depth, const QString &profile)
lager::state< KisDisplayConfig::Options, lager::automatic_tag > displayConfigOptions
lager::cursor< KisProofingConfiguration > data
void updateDisplayConfigOptions(KisDisplayConfig::Options options)
KisProofingConfigModel(lager::cursor< KisProofingConfiguration > _data=lager::make_state(KisProofingConfiguration(), lager::automatic_tag{}))
~KisProofingConfigModel()
The KisProofingConfiguration struct Little struct that stores the proofing configuration for a given ...
DisplayTransformState displayMode
@ Custom
Let artists configure their own.
@ Paper
Whether to use Paper settings (absolute colorimetric, 0% adaptation.)
@ Monitor
Whether to use monitor rendering intent and flags for the second transform.
KoColorConversionTransformation::Intent displayIntent
This is the intent for the second transform.
KoColorConversionTransformation::Intent conversionIntent
This is the intent for the first transform.
bool useBlackPointCompensationFirstTransform
Whether to use BCP on the first transform. All other flags are handled by displayFlags;.
KoColorConversionTransformation::ConversionFlags displayFlags
flags for the second transform.
constexpr auto logical_not