From 18abbd5ba9c135d665b329966f67674fa961e7ce 2017-11-24 10:07:10 From: Alexandre Leroux Date: 2017-11-24 10:07:10 Subject: [PATCH] Implements color scale save when the editor is closed --- diff --git a/gui/include/Visualization/ColorScaleEditor.h b/gui/include/Visualization/ColorScaleEditor.h index 6bb5af5..4948e41 100644 --- a/gui/include/Visualization/ColorScaleEditor.h +++ b/gui/include/Visualization/ColorScaleEditor.h @@ -24,6 +24,9 @@ public: private: /// Fills the editor fields from color scale data void loadScale(); + /// Updates the color scale from editor fields + void saveScale(); + Ui::ColorScaleEditor *ui; QButtonGroup *m_ThresholdGroup; /// Scale in editing @@ -34,6 +37,9 @@ private: QCPColorScale *m_PreviewScale; private slots: + /// @sa QDialog::accept() + void accept() override; + /// Slot called when max threshold value changes void onMaxChanged(); /// Slot called when min threshold value changes diff --git a/gui/src/Visualization/ColorScaleEditor.cpp b/gui/src/Visualization/ColorScaleEditor.cpp index a91e69d..81f271b 100644 --- a/gui/src/Visualization/ColorScaleEditor.cpp +++ b/gui/src/Visualization/ColorScaleEditor.cpp @@ -67,6 +67,10 @@ ColorScaleEditor::ColorScaleEditor(SqpColorScale &scale, QWidget *parent) connect(ui->minSpinBox, SIGNAL(editingFinished()), this, SLOT(onMinChanged())); connect(ui->maxSpinBox, SIGNAL(editingFinished()), this, SLOT(onMaxChanged())); + // OK/cancel buttons + connect(ui->okButton, SIGNAL(clicked(bool)), this, SLOT(accept())); + connect(ui->cancelButton, SIGNAL(clicked(bool)), this, SLOT(reject())); + // Loads color scale loadScale(); } @@ -95,6 +99,29 @@ void ColorScaleEditor::loadScale() updatePreview(); } +void ColorScaleEditor::saveScale() +{ + auto qcpColorScale = m_Scale.m_Scale; + + // Gradient + auto gradientPreset + = ui->gradientComboBox->currentData().value(); + qcpColorScale->setGradient(gradientPreset); + m_Scale.m_GradientPreset = gradientPreset; + + // Threshold mode + m_Scale.m_AutomaticThreshold = ui->thresholdAutoButton->isChecked(); + + // Min/max + qcpColorScale->setDataRange(QCPRange{ui->minSpinBox->value(), ui->maxSpinBox->value()}); +} + +void ColorScaleEditor::accept() +{ + saveScale(); + QDialog::accept(); +} + void ColorScaleEditor::onMaxChanged() { // Ensures that max >= min