@@ -36,7 +36,10 @@ void WaypointEditorDialog::initializeUi()
3636 util::SignalBlockers blockers (this );
3737
3838 updateWaypointListComboBox ();
39- ui->nameEdit ->setEnabled (_model->isEnabled ());
39+ bool enabled = _model->isEnabled ();
40+ ui->nameEdit ->setEnabled (enabled);
41+ ui->noDrawLinesCheck ->setEnabled (enabled);
42+ ui->customColorCheck ->setEnabled (enabled);
4043}
4144
4245void WaypointEditorDialog::updateWaypointListComboBox ()
@@ -55,6 +58,28 @@ void WaypointEditorDialog::updateUi()
5558 util::SignalBlockers blockers (this );
5659 ui->nameEdit ->setText (QString::fromStdString (_model->getCurrentName ()));
5760 ui->pathSelection ->setCurrentIndex (ui->pathSelection ->findData (_model->getCurrentlySelectedPath ()));
61+
62+ ui->noDrawLinesCheck ->setChecked (_model->getNoDrawLines ());
63+ ui->customColorCheck ->setChecked (_model->getHasCustomColor ());
64+ ui->colorRSpinBox ->setValue (_model->getColorR ());
65+ ui->colorGSpinBox ->setValue (_model->getColorG ());
66+ ui->colorBSpinBox ->setValue (_model->getColorB ());
67+
68+ bool colorEnabled = _model->isEnabled () && _model->getHasCustomColor ();
69+ ui->colorRSpinBox ->setEnabled (colorEnabled);
70+ ui->colorGSpinBox ->setEnabled (colorEnabled);
71+ ui->colorBSpinBox ->setEnabled (colorEnabled);
72+
73+ updateColorSwatch ();
74+ }
75+
76+ void WaypointEditorDialog::updateColorSwatch ()
77+ {
78+ ui->colorSwatch ->setStyleSheet (QString (" background: rgb(%1,%2,%3);"
79+ " border: 1px solid #444; border-radius: 3px;" )
80+ .arg (_model->getColorR ())
81+ .arg (_model->getColorG ())
82+ .arg (_model->getColorB ()));
5883}
5984
6085void WaypointEditorDialog::on_pathSelection_currentIndexChanged (int index)
@@ -86,4 +111,41 @@ void WaypointEditorDialog::on_nameEdit_editingFinished()
86111 }
87112}
88113
114+ void WaypointEditorDialog::on_noDrawLinesCheck_toggled (bool checked)
115+ {
116+ _model->setNoDrawLines (checked);
117+ _model->apply ();
118+ }
119+
120+ void WaypointEditorDialog::on_customColorCheck_toggled (bool checked)
121+ {
122+ _model->setHasCustomColor (checked);
123+ ui->colorRSpinBox ->setEnabled (checked);
124+ ui->colorGSpinBox ->setEnabled (checked);
125+ ui->colorBSpinBox ->setEnabled (checked);
126+ updateColorSwatch ();
127+ _model->apply ();
128+ }
129+
130+ void WaypointEditorDialog::on_colorRSpinBox_valueChanged (int value)
131+ {
132+ _model->setColorR (value);
133+ updateColorSwatch ();
134+ _model->apply ();
135+ }
136+
137+ void WaypointEditorDialog::on_colorGSpinBox_valueChanged (int value)
138+ {
139+ _model->setColorG (value);
140+ updateColorSwatch ();
141+ _model->apply ();
142+ }
143+
144+ void WaypointEditorDialog::on_colorBSpinBox_valueChanged (int value)
145+ {
146+ _model->setColorB (value);
147+ updateColorSwatch ();
148+ _model->apply ();
149+ }
150+
89151} // namespace fso::fred::dialogs
0 commit comments