Krita Source Code Documentation
Loading...
Searching...
No Matches
KisProofingOptionsWidget.cpp
Go to the documentation of this file.
1/*
2 * This file is part of Krita
3 *
4 * SPDX-FileCopyrightText: 2025 Dmitry Kazakov <dimula73@gmail.com>
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
8
10
13#include <KoColorProfile.h>
15
16
17#include "ui_wdgproofingoptions.h"
18
25
27 : QWidget(parent)
28 , m_d(new Private)
29{
30 m_d->ui.setupUi(this);
31
32 m_d->ui.proofSpaceSelector->showDepth(false);
33
34 connect(m_d->ui.proofSpaceSelector,
35 qOverload<const KoColorSpace *>(&KisColorSpaceSelector::colorSpaceChanged),
36 this,
37 [this](const KoColorSpace *cs) {
38 m_d->proofingModel.setProofingColorSpaceIdAtomic(cs->colorModelId().id(),
39 cs->colorDepthId().id(),
40 cs->profile() ? cs->profile()->name() : "");
41 });
42
43 connect(&m_d->proofingModel,
44 &KisProofingConfigModel::proofingSpaceTupleChanged,
45 this,
46 [this](const KisProofingConfigModel::ColorSpaceId &tuple) {
47 QSignalBlocker b(m_d->ui.proofSpaceSelector);
48 m_d->ui.proofSpaceSelector->setCurrentColorSpace(
49 KoColorSpaceRegistry::instance()->colorSpace(std::get<0>(tuple),
50 std::get<1>(tuple),
51 std::get<2>(tuple)));
52 });
53 m_d->proofingModel.LAGER_QT(proofingSpaceTuple).nudge();
54
55
56 m_d->softProofConfigCompressor = new KisSignalCompressor(500, KisSignalCompressor::POSTPONE, this);
57
58 KisWidgetConnectionUtils::connectControl(m_d->ui.ckbBlackPointComp, &m_d->proofingModel, "convBlackPointCompensation");
59 KisWidgetConnectionUtils::connectControl(m_d->ui.gamutAlarm, &m_d->proofingModel, "warningColor");
60 KisWidgetConnectionUtils::connectControlState(m_d->ui.cmbDisplayTransformState, &m_d->proofingModel, "displayTransformModeState", "displayTransformMode");
61 KisWidgetConnectionUtils::connectControlState(m_d->ui.chkDoChromaticAdaptation, &m_d->proofingModel, "adaptationSwitchState", "adaptationSwitch");
62 KisWidgetConnectionUtils::connectControlState(m_d->ui.cmbIntent, &m_d->proofingModel, "conversionIntentState", "conversionIntent");
63 KisWidgetConnectionUtils::connectControlState(m_d->ui.cmbDisplayIntent, &m_d->proofingModel, "effectiveDisplayIntentState", "displayIntent");
64 KisWidgetConnectionUtils::connectControlState(m_d->ui.chkDisplayBlackPointCompensation, &m_d->proofingModel, "effectiveDispBlackPointCompensationState", "dispBlackPointCompensation");
65
67 m_d->softProofConfigCompressor, &KisSignalCompressor::start);
68 connect(m_d->softProofConfigCompressor, &KisSignalCompressor::timeout,
70}
71
75
80
82{
83 m_d->proofingModel.data.set(*config);
84}
85
87{
88 m_d->proofingModel.updateDisplayConfigOptions(options);
89}
90
95
97{
98 m_d->softProofConfigCompressor->stop();
99}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
std::pair< KoColorConversionTransformation::Intent, KoColorConversionTransformation::ConversionFlags > Options
The KisProofingConfigModel class.
std::tuple< QString, QString, QString > ColorSpaceId
The KisProofingConfiguration struct Little struct that stores the proofing configuration for a given ...
void sigProofingConfigChanged(KisProofingConfigurationSP config)
void setDisplayConfigOptions(const KisDisplayConfig::Options &options)
QScopedPointer< Private > m_d
KisProofingConfigurationSP currentProofingConfig() const
void setProofingConfig(KisProofingConfigurationSP config)
QSharedPointer< T > toQShared(T *ptr)
void connectControl(KisCompositeOpListWidget *widget, QObject *source, const char *property)
void connectControlState(QSpinBox *spinBox, QObject *source, const char *readStateProperty, const char *writeProperty)