8#include "colordialog.h"
10#include "constpropagatingrawpointer.h"
11#include "genericcolor.h"
13#include "helperconversion.h"
14#include "languagechangeeventfilter.h"
15#include "perceptualsettings.h"
19#include <qbytearray.h>
25#include <qsharedpointer.h>
27#include <qstringliteral.h>
41#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
42#include <qtmetamacros.h>
44#include <qobjectdefs.h>
49class ChromaHueDiagram;
55class WheelColorPicker;
61class ColorDialogPrivate final :
public QObject
65 explicit ColorDialogPrivate(ColorDialog *backLink);
70 virtual ~ColorDialogPrivate() noexcept override = default;
73 QPointer<GradientSlider> m_alphaGradientSlider;
95 QPointer<ChromaHueDiagram> m_chromaHueDiagram;
97 QPointer<MultiSpinBox> m_ciehlcD50SpinBox;
118 QHash<ColorModel, GenericColor> m_currentOpaqueColorAbs;
127 RgbColor m_currentOpaqueColorRgb;
129 bool everShown = false;
131 QPointer<MultiSpinBox> m_hslSpinBox;
135 QPointer<MultiSpinBox> m_hsvSpinBox;
139 QPointer<MultiSpinBox> m_hwbSpinBox;
152 bool m_isColorChangeInProgress = false;
157 bool m_isDirtyRgbLineEdit = false;
159 LanguageChangeEventFilter m_languageChangeEventFilter;
162 PerceptualColor::ColorDialog::DialogLayoutDimensions m_layoutDimensions =
164 ColorDialog::DialogLayoutDimensions::Collapsed
175 PerceptualColor::ColorDialog::DialogLayoutDimensions m_layoutDimensionsEffective = m_layoutDimensions;
182 QPointer<GradientSlider> m_lchLightnessSelector;
196 static inline const
QString m_multispinboxSectionSeparator = QStringLiteral(u" ");
203 QPointer<MultiSpinBox> m_oklchSpinBox;
222 ColorDialog::ColorDialogOptions m_options;
234 QPointer<MultiSpinBox> m_rgbSpinBox;
242 PerceptualSettings &m_settings = PerceptualSettings::instance();
251 const
QString tableRow = QStringLiteral(u"<
tr><td>%1</td><td>%2</td></
tr>");
260 Array2D<
QColor> m_wcsBasicColors;
271 QColor m_wcsBasicDefaultColor;
273 QPointer<WheelColorPicker> m_wheelColorPicker;
278 static constexpr quint8 decimals = 0;
283 static constexpr quint8 okdecimals = decimals + 2;
285 void applyLayoutDimensions();
287 [[nodiscard]]
QWidget *initializeNumericPage();
288 void initializeScreenColorPicker();
289 [[nodiscard]]
QString translateColorModel(cmsColorSpaceSignature model);
292 void readChromaHueDiagramValue();
293 void readColorPatchValue();
294 void readHlcNumericValues();
295 void readHslNumericValues();
296 void readHsvNumericValues();
297 void readHwbNumericValues();
298 void readLightnessValue();
299 void readOklchNumericValues();
300 void readRgbHexValues();
301 void readRgbNumericValues();
302 void readSwatchBookBasicColorsValue();
303 void readWheelColorPickerValues();
305 void retranslateUi();
306 void saveCurrentTab();
312 void updateColorPatch();
313 void updateHlcButBlockSignals();
314 void updateOklchButBlockSignals();
315 void updateRgbHexButBlockSignals();
318 Q_DISABLE_COPY(ColorDialogPrivate)
322 ConstPropagatingRawPointer<ColorDialog> q_pointer;
The namespace of this library.
ColorSchemeType
Represents the appearance of a theme.
QString tr(const char *sourceText, const char *disambiguation, int n)