10 #include "ui_sfEditDlg.h"
31 m_associatedSF(nullptr),
32 m_associatedSFHisto(nullptr),
33 m_ui(new
Ui::SFEditDlg) {
39 QHBoxLayout* hboxLayout =
new QHBoxLayout(
m_ui->histoFrame);
41 hboxLayout->setContentsMargins(0, 0, 0, 0);
50 connect(
m_ui->minValSpinBox,
51 static_cast<void (QDoubleSpinBox::*)(
double)
>(
52 &QDoubleSpinBox::valueChanged),
54 connect(
m_ui->maxValSpinBox,
55 static_cast<void (QDoubleSpinBox::*)(
double)
>(
56 &QDoubleSpinBox::valueChanged),
58 connect(
m_ui->minSatSpinBox,
59 static_cast<void (QDoubleSpinBox::*)(
double)
>(
60 &QDoubleSpinBox::valueChanged),
62 connect(
m_ui->maxSatSpinBox,
63 static_cast<void (QDoubleSpinBox::*)(
double)
>(
64 &QDoubleSpinBox::valueChanged),
77 connect(
m_ui->nanInGreyCheckBox, &QCheckBox::toggled,
this,
79 connect(
m_ui->alwaysShow0CheckBox, &QCheckBox::toggled,
this,
81 connect(
m_ui->symmetricalScaleCheckBox, &QCheckBox::toggled,
this,
83 connect(
m_ui->logScaleCheckBox, &QCheckBox::toggled,
this,
96 m_ui->histoFrame->setVisible(
false);
109 m_ui->nanInGreyCheckBox->blockSignals(
true);
110 m_ui->nanInGreyCheckBox->setChecked(nanValuesInGrey);
111 m_ui->nanInGreyCheckBox->blockSignals(
false);
113 m_ui->alwaysShow0CheckBox->blockSignals(
true);
114 m_ui->alwaysShow0CheckBox->setChecked(alwaysShowZero);
115 m_ui->alwaysShow0CheckBox->setEnabled(!logScale);
116 m_ui->alwaysShow0CheckBox->blockSignals(
false);
118 m_ui->symmetricalScaleCheckBox->blockSignals(
true);
119 m_ui->symmetricalScaleCheckBox->setChecked(symmetricalScale);
120 m_ui->symmetricalScaleCheckBox->setEnabled(!absoluteScale && !logScale);
121 m_ui->symmetricalScaleCheckBox->blockSignals(
false);
123 m_ui->logScaleCheckBox->blockSignals(
true);
124 m_ui->logScaleCheckBox->setChecked(logScale);
125 m_ui->logScaleCheckBox->blockSignals(
false);
128 m_ui->satLabel->setText(
"log sat.");
129 else if (symmetricalScale)
130 m_ui->satLabel->setText(
"abs. sat.");
132 m_ui->satLabel->setText(
"saturation");
142 bool flatSF = (displayRange.
maxRange() == 0);
143 m_ui->slidersFrame->setEnabled(!flatSF);
146 m_ui->histoFrame->setVisible(
true);
150 unsigned classNumber =
static_cast<unsigned>(histogram.size());
151 if (classNumber == 0) classNumber = 128;
157 m_ui->minValSpinBox->blockSignals(
true);
158 m_ui->minSatSpinBox->blockSignals(
true);
159 m_ui->maxSatSpinBox->blockSignals(
true);
160 m_ui->maxValSpinBox->blockSignals(
true);
164 m_ui->minValSpinBox->setRange(displayRange.
min(),
165 displayRange.
stop());
166 m_ui->minValSpinBox->setSingleStep(displayRange.
maxRange() /
168 m_ui->minValSpinBox->setValue(displayRange.
start());
171 m_ui->minSatSpinBox->setRange(saturationRange.
min(),
172 saturationRange.
stop());
173 m_ui->minSatSpinBox->setSingleStep(saturationRange.
maxRange() /
175 m_ui->minSatSpinBox->setValue(saturationRange.
start());
178 m_ui->maxSatSpinBox->setRange(saturationRange.
start(),
179 saturationRange.
max());
180 m_ui->maxSatSpinBox->setSingleStep(saturationRange.
maxRange() /
182 m_ui->maxSatSpinBox->setValue(saturationRange.
stop());
185 m_ui->maxValSpinBox->setRange(displayRange.
start(),
187 m_ui->maxValSpinBox->setSingleStep(displayRange.
maxRange() /
189 m_ui->maxValSpinBox->setValue(displayRange.
stop());
192 double uniqueVal = displayRange.
min();
193 m_ui->minValSpinBox->setRange(uniqueVal, uniqueVal);
194 m_ui->minSatSpinBox->setRange(uniqueVal, uniqueVal);
195 m_ui->maxSatSpinBox->setRange(uniqueVal, uniqueVal);
196 m_ui->maxValSpinBox->setRange(uniqueVal, uniqueVal);
199 m_ui->minValSpinBox->blockSignals(
false);
200 m_ui->minSatSpinBox->blockSignals(
false);
201 m_ui->maxSatSpinBox->blockSignals(
false);
202 m_ui->maxValSpinBox->blockSignals(
false);
213 QApplication::processEvents();
223 QApplication::processEvents();
233 QApplication::processEvents();
243 QApplication::processEvents();
249 m_ui->minValSpinBox->blockSignals(
true);
250 m_ui->minValSpinBox->setValue(val);
251 m_ui->minValSpinBox->blockSignals(
false);
255 QApplication::processEvents();
261 m_ui->maxValSpinBox->blockSignals(
true);
262 m_ui->maxValSpinBox->setValue(val);
263 m_ui->maxValSpinBox->blockSignals(
false);
267 QApplication::processEvents();
273 m_ui->minSatSpinBox->blockSignals(
true);
274 m_ui->minSatSpinBox->setValue(val);
275 m_ui->minSatSpinBox->blockSignals(
false);
279 QApplication::processEvents();
285 m_ui->maxSatSpinBox->blockSignals(
true);
286 m_ui->maxSatSpinBox->setValue(val);
287 m_ui->maxSatSpinBox->blockSignals(
false);
291 QApplication::processEvents();
void setMinDispValue(double)
void sfMaxSatValChanged(double)
void sfMinSatValChanged(double)
void setMinSatValue(double)
void refresh()
Updates the display.
void fromSF(ccScalarField *sf, unsigned initialNumberOfClasses=0, bool numberOfClassesCanBeChanged=true, bool showNaNValuesInGrey=true)
Computes histogram from a scalar field.
void sfMinDispValChanged(double)
void setSFInteractionMode(SFInteractionModes modes)
Enables SF interaction mode.
void sfMaxDispValChanged(double)
void setMaxSatValue(double)
void setMaxDispValue(double)
Scalar field range structure.
ScalarType maxRange() const
A scalar field associated to display-related parameters.
const ccColorScale::Shared & getColorScale() const
Returns associated color scale.
bool logScale() const
Returns whether scalar field is logarithmic or not.
void alwaysShowZero(bool state)
Sets whether 0 should always appear in associated color ramp or not.
void setLogScale(bool state)
Sets whether scale is logarithmic or not.
void setSymmetricalScale(bool state)
Sets whether the color scale should be symmetrical or not.
const Range & saturationRange() const
Access to the range of saturation values.
const Histogram & getHistogram() const
Returns associated histogram values (for display)
void showNaNValuesInGrey(bool state)
const Range & displayRange() const
Access to the range of displayed values.
bool symmetricalScale() const
Returns whether the color scale s symmetrical or not.
bool areNaNValuesShownInGrey() const
Returns whether NaN values are displayed in gray or hidden.
bool isZeroAlwaysShown() const
Returns whether 0 should always appear in associated color ramp or not.
ccScalarField * m_associatedSF
Associated scalar field.
void minSatHistoChanged(double)
void minValSBChanged(double)
sfEditDlg(QWidget *parent=0)
Default constructor.
void maxValHistoChanged(double)
void alwaysShow0Changed(bool)
ccHistogramWindow * m_associatedSFHisto
Associated scalar field histogram.
void logScaleChanged(bool)
void minSatSBChanged(double)
void entitySFHasChanged()
Signal emitted when the SF display parameters have changed.
void maxValSBChanged(double)
void maxSatSBChanged(double)
void minValHistoChanged(double)
void maxSatHistoChanged(double)
void fillDialogWith(ccScalarField *sf)
Updates dialog with a given scalar field.
void symmetricalScaleChanged(bool)
void nanInGrayChanged(bool)
const int SPIN_BOX_STEPS
Default number of steps for spin-boxes.
Simple histogram structure.