| 147 | } |
| 148 | |
| 149 | void FitOptionsWidget::autoEvalRangeChanged() { |
| 150 | const bool autoRange = ui.cbAutoEvalRange->isChecked(); |
| 151 | m_fitData->autoEvalRange = autoRange; |
| 152 | |
| 153 | ui.leEvalMin->setEnabled(!autoRange); |
| 154 | ui.lEvalRange->setEnabled(!autoRange); |
| 155 | ui.leEvalMax->setEnabled(!autoRange); |
| 156 | ui.dateTimeEditEvalMin->setEnabled(!autoRange); |
| 157 | ui.lEvalRange->setEnabled(!autoRange); |
| 158 | ui.dateTimeEditEvalMax->setEnabled(!autoRange); |
| 159 | |
| 160 | if (autoRange) { |
| 161 | const AbstractColumn* xDataColumn = nullptr; |
| 162 | switch (m_fitCurve->dataSourceType()) { |
| 163 | case XYAnalysisCurve::DataSourceType::Spreadsheet: |
| 164 | xDataColumn = m_fitCurve->xDataColumn(); |
| 165 | break; |
| 166 | case XYAnalysisCurve::DataSourceType::Curve: |
| 167 | if (m_fitCurve->dataSourceCurve()) |
| 168 | xDataColumn = m_fitCurve->dataSourceCurve()->xColumn(); |
| 169 | break; |
| 170 | case XYAnalysisCurve::DataSourceType::Histogram: |
| 171 | if (m_fitCurve->dataSourceHistogram()) |
| 172 | xDataColumn = m_fitCurve->dataSourceHistogram()->bins(); |
| 173 | } |
| 174 | |
| 175 | if (xDataColumn) { |
| 176 | const double xMin = xDataColumn->minimum(); |
| 177 | const double xMax = xDataColumn->maximum(); |
| 178 | m_fitData->evalRange.setRange(xMin, xMax); |
| 179 | |
| 180 | const auto numberLocale = QLocale(); |
| 181 | if (!m_dateTimeRange) { |
| 182 | ui.leEvalMin->setText(numberLocale.toString(xMin)); |
| 183 | ui.leEvalMax->setText(numberLocale.toString(xMax)); |
| 184 | } else { |
| 185 | ui.dateTimeEditEvalMin->setMSecsSinceEpochUTC(xMin); |
| 186 | ui.dateTimeEditEvalMax->setMSecsSinceEpochUTC(xMax); |
| 187 | } |
| 188 | } |
| 189 | } |
| 190 | } |
| 191 | |
| 192 | void FitOptionsWidget::fitRangeMinChanged() { |
| 193 | SET_DOUBLE_FROM_LE(m_fitData->fitRange.start(), ui.leMin); |
no test coverage detected