#include "..\Header\SettingsWindow.h" #include SettingsWindow::SettingsWindow(QWidget * parent) : QWidget(parent) , ui(new Ui::SettingsWindow) { ui->setupUi(this); setWindowFlags(Qt::Tool | Qt::NoDropShadowWindowHint); // light off connect(ui->lightOff_R_LE, &QLineEdit::textChanged, [this](const QString& value){ui->lightOff_R_S->setValue(value.toInt());}); connect(ui->lightOff_R_S, &QSlider::valueChanged, [this](const int& value){ui->lightOff_R_LE->setText(QString::number(value));}); connect(ui->lightOff_R_S, &QSlider::valueChanged, this, &SettingsWindow::backgroundColorOffChanged); connect(ui->lightOff_G_LE, &QLineEdit::textChanged, [this](const QString& value){ui->lightOff_G_S->setValue(value.toInt());}); connect(ui->lightOff_G_S, &QSlider::valueChanged, [this](const int& value){ui->lightOff_G_LE->setText(QString::number(value));}); connect(ui->lightOff_G_S, &QSlider::valueChanged, this, &SettingsWindow::backgroundColorOffChanged); connect(ui->lightOff_B_LE, &QLineEdit::textChanged, [this](const QString& value){ui->lightOff_B_S->setValue(value.toInt());}); connect(ui->lightOff_B_S, &QSlider::valueChanged, [this](const int& value){ui->lightOff_B_LE->setText(QString::number(value));}); connect(ui->lightOff_B_S, &QSlider::valueChanged, this, &SettingsWindow::backgroundColorOffChanged); // light on connect(ui->lightOn_R_LE, &QLineEdit::textChanged, [this](const QString& value){ui->lightOn_R_S->setValue(value.toInt());}); connect(ui->lightOn_R_S, &QSlider::valueChanged, [this](const int& value){ui->lightOn_R_LE->setText(QString::number(value));}); connect(ui->lightOn_R_S, &QSlider::valueChanged, this, &SettingsWindow::backgroundColorOnChanged); connect(ui->lightOn_G_LE, &QLineEdit::textChanged, [this](const QString& value){ui->lightOn_G_S->setValue(value.toInt());}); connect(ui->lightOn_G_S, &QSlider::valueChanged, [this](const int& value){ui->lightOn_G_LE->setText(QString::number(value));}); connect(ui->lightOn_G_S, &QSlider::valueChanged, this, &SettingsWindow::backgroundColorOnChanged); connect(ui->lightOn_B_LE, &QLineEdit::textChanged, [this](const QString& value){ui->lightOn_B_S->setValue(value.toInt());}); connect(ui->lightOn_B_S, &QSlider::valueChanged, [this](const int& value){ui->lightOn_B_LE->setText(QString::number(value));}); connect(ui->lightOn_B_S, &QSlider::valueChanged, this, &SettingsWindow::backgroundColorOnChanged); // light connect(ui->light_R_LE, &QLineEdit::textChanged, [this](const QString& value){ui->light_R_S->setValue(value.toInt());}); connect(ui->light_R_S, &QSlider::valueChanged, [this](const int& value){ui->light_R_LE->setText(QString::number(value)); if(ui->checkAutoColor->isChecked()) ui->lightOn_R_S->setValue((int)(value / 50));}); connect(ui->light_R_S, &QSlider::valueChanged, this, &SettingsWindow::lightColorChanged); connect(ui->light_G_LE, &QLineEdit::textChanged, [this](const QString& value){ui->light_G_S->setValue(value.toInt());}); connect(ui->light_G_S, &QSlider::valueChanged, [this](const int& value){ui->light_G_LE->setText(QString::number(value)); if(ui->checkAutoColor->isChecked()) ui->lightOn_G_S->setValue((int)(value / 50));}); connect(ui->light_G_S, &QSlider::valueChanged, this, &SettingsWindow::lightColorChanged); connect(ui->light_B_LE, &QLineEdit::textChanged, [this](const QString& value){ui->light_B_S->setValue(value.toInt());}); connect(ui->light_B_S, &QSlider::valueChanged, [this](const int& value){ui->light_B_LE->setText(QString::number(value)); if(ui->checkAutoColor->isChecked()) ui->lightOn_B_S->setValue((int)(value / 50));}); connect(ui->light_B_S, &QSlider::valueChanged, this, &SettingsWindow::lightColorChanged); connect(ui->checkAutoColor, &QCheckBox::toggled, this, &SettingsWindow::autoColorToggled); connect(ui->radioDirectLight, &QRadioButton::toggled, this, &SettingsWindow::radioToggled); connect(ui->ambCoef, static_cast(&QDoubleSpinBox::valueChanged), [this](double value) {emit updateAmbCoef(value); }); connect(ui->attFac, static_cast(&QDoubleSpinBox::valueChanged), [this](double value) {emit updateAttFac(value); }); } SettingsWindow::~SettingsWindow() { delete ui; } //////////////////////////////////////////////////////////////////////////////// // connection slots void SettingsWindow::autoColorToggled() { if (!ui->checkAutoColor->isChecked()) { ui->lightOn_R_LE->setEnabled(true); ui->lightOn_R_S->setEnabled(true); ui->lightOn_G_LE->setEnabled(true); ui->lightOn_G_S->setEnabled(true); ui->lightOn_B_LE->setEnabled(true); ui->lightOn_B_S->setEnabled(true); } else { ui->lightOn_R_LE->setEnabled(false); ui->lightOn_R_S->setEnabled(false); ui->lightOn_G_LE->setEnabled(false); ui->lightOn_G_S->setEnabled(false); ui->lightOn_B_LE->setEnabled(false); ui->lightOn_B_S->setEnabled(false); ui->lightOn_R_LE->setText(QString::number((int)(ui->light_R_S->value() / 50))); ui->lightOn_R_S->setValue((int)(ui->light_R_S->value() / 50)); ui->lightOn_G_LE->setText(QString::number((int)(ui->light_G_S->value() / 50))); ui->lightOn_G_S->setValue((int)(ui->light_G_S->value() / 50)); ui->lightOn_B_LE->setText(QString::number((int)(ui->light_B_S->value() / 50))); ui->lightOn_B_S->setValue((int)(ui->light_B_S->value() / 50)); } } void SettingsWindow::radioToggled() { if(ui->radioDirectLight->isChecked()) { ui->attFac->setValue(0.0); ui->attFac->setEnabled(false); ui->ambCoef->setEnabled(false); } else { ui->attFac->setEnabled(true); ui->ambCoef->setEnabled(true); } } void SettingsWindow::backgroundColorOffChanged() { emit updateBGColorOff(QVector3D(ui->lightOff_R_S->value(), ui->lightOff_G_S->value(), ui->lightOff_B_S->value())); } void SettingsWindow::backgroundColorOnChanged() { emit updateBGColorOn(QVector3D(ui->lightOn_R_S->value(), ui->lightOn_G_S->value(), ui->lightOn_B_S->value())); } void SettingsWindow::lightColorChanged() { emit updateLightColor(QVector3D(ui->light_R_S->value(), ui->light_G_S->value(), ui->light_B_S->value())); }