12#include <QSignalBlocker>
27 m_d->layout =
new QFormLayout(
this);
28 for (
int i = 0; i < 3; i++){
29 m_d->labels.push_back(
new QLabel(
this));
31 m_d->layout->addRow(
m_d->labels[i],
m_d->spinBoxes[i]);
34 m_d->labels[0]->setText(i18n(
"Hue:"));
35 m_d->labels[1]->setText(i18n(
"Saturation:"));
36 m_d->labels[2]->setText(
"<x>:");
37 m_d->spinBoxes[0]->setMaximum(360.0);
38 m_d->spinBoxes[1]->setMaximum(100.0);
39 m_d->spinBoxes[2]->setMaximum(100.0);
40 m_d->spinBoxes[0]->setSuffix(
" °");
41 m_d->spinBoxes[1]->setSuffix(
" %");
42 m_d->spinBoxes[2]->setSuffix(
" %");
51 if (
m_d->selectorModel) {
52 m_d->selectorModel->disconnect(
this);
53 disconnect(
m_d->selectorModel.data());
55 m_d->selectorModel = model;
59 if (model->isHSXModel()) {
67 if (!
m_d->selectorModel) {
71 if (
m_d->selectorModel->isHSXModel()) {
72 switch (
m_d->selectorModel->colorModel()) {
74 m_d->labels[2]->setText(i18n(
"Value:"));
77 m_d->labels[2]->setText(i18n(
"Lightness:"));
80 m_d->labels[2]->setText(i18n(
"Intensity:"));
83 m_d->labels[2]->setText(i18n(
"Luma:"));
91 m_d->selectorModel.data(), SLOT(slotSetChannelValues(QVector4D)), Qt::UniqueConnection);
100 const QSignalBlocker
s1(
m_d->spinBoxes[0]),
s2(
m_d->spinBoxes[1]),
s3(
m_d->spinBoxes[2]);
101 m_d->spinBoxes[0]->setValue(values[0] * 360.0);
102 m_d->spinBoxes[1]->setValue(values[1] * 100.0);
103 m_d->spinBoxes[2]->setValue(values[2] * 100.0);
108 QVector4D hsx(
m_d->spinBoxes[0]->value() / 360.0,
109 m_d->spinBoxes[1]->value() / 100.0,
110 m_d->spinBoxes[2]->value() / 100.0,
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
The KisDoubleParseSpinBox class is a cleverer doubleSpinBox, able to parse arithmetic expressions.
const QScopedPointer< Private > m_d
void slotChannelValuesChanged(const QVector4D &values)
void slotColorModelChanged()
void slotSpinBoxChanged()
void sigChannelValuesChanged(const QVector4D &values)
~KisSpinboxHSXSelector() override
void setModel(KisVisualColorModelSP model)
connect signals and slots with given selector model to synchronize value and color model changes.
KisSpinboxHSXSelector(QWidget *parent=nullptr)
QList< KisDoubleParseSpinBox * > spinBoxes
KisVisualColorModelSP selectorModel