src/widgets/colorindexinput.cpp

changeset 178
a23024fc98e0
child 200
ca23936b455b
equal deleted inserted replaced
177:f69d53c053df 178:a23024fc98e0
1 #include "colorindexinput.h"
2 #include "ui_colorindexinput.h"
3 #include "colorselectdialog.h"
4 #include "uiutilities.h"
5
6 ColorIndexInput::ColorIndexInput(Document *document, ldraw::Color color, QWidget *parent) :
7 QWidget{parent},
8 document{document},
9 ui{*new Ui_ColorIndexInput}
10 {
11 this->ui.setupUi(this);
12 connect(this->ui.button, &QPushButton::clicked, [this]()
13 {
14 ColorSelectDialog dialog{this->document->colorTable, this->document};
15 const int result = dialog.exec();
16 if (result == QDialog::Accepted)
17 {
18 this->ui.index->setValue(dialog.currentColor().index);
19 }
20 });
21 connect(this->ui.index, qOverload<int>(&QSpinBox::valueChanged), [this](int value)
22 {
23 this->ui.button->setText(ldraw::colorDisplayName({value}, this->document->colorTable));
24 uiutilities::colorizeWidget(this->ui.button, ldraw::colorFace({value}, this->document->colorTable));
25 Q_EMIT this->colorChanged({value});
26 });
27 this->ui.index->setValue(color.index);
28 }
29
30 ColorIndexInput::~ColorIndexInput()
31 {
32 delete &this->ui;
33 }
34
35 ldraw::Color ColorIndexInput::selectedColor() const
36 {
37 return {this->ui.index->value()};
38 }
39
40 void ColorIndexInput::setSelectedColor(ldraw::Color color)
41 {
42 this->ui.index->setValue(color.index);
43 }

mercurial