MCPcopy Create free account
hub / github.com/KDE/labplot / FitOptionsWidget

Method FitOptionsWidget

src/frontend/widgets/FitOptionsWidget.cpp:23–110  ·  view source on GitHub ↗

! \class FitOptionsWidget \brief Widget for editing advanced fit options. \ingroup frontend */

Source from the content-addressed store, hash-verified

21 \ingroup frontend
22 */
23FitOptionsWidget::FitOptionsWidget(QWidget* parent, XYFitCurve::FitData* fitData, XYFitCurve* fitCurve)
24 : QWidget(parent)
25 , m_fitData(fitData)
26 , m_fitCurve(fitCurve) {
27 ui.setupUi(this);
28 ui.pbApply->setIcon(QIcon::fromTheme(QStringLiteral("dialog-ok-apply")));
29 ui.pbCancel->setIcon(QIcon::fromTheme(QStringLiteral("dialog-cancel")));
30
31 // TODO: show "robust" option when robust fitting is possible
32 // ui.cbRobust->addItem(i18n("on"));
33 // ui.cbRobust->addItem(i18n("off"));
34 ui.lRobust->setVisible(false);
35 ui.cbRobust->setVisible(false);
36
37 ui.leMaxIterations->setValidator(new QIntValidator(ui.leMaxIterations));
38 ui.leEps->setValidator(new QDoubleValidator(ui.leEps));
39 ui.leEvaluatedPoints->setValidator(new QIntValidator(ui.leEvaluatedPoints));
40
41 const auto numberLocale = QLocale();
42 ui.leMaxIterations->setText(numberLocale.toString(m_fitData->maxIterations));
43 ui.leEps->setText(numberLocale.toString(m_fitData->eps));
44 ui.leEvaluatedPoints->setText(numberLocale.toString(static_cast<qulonglong>(m_fitData->evaluatedPoints)));
45 ui.sbConfidenceInterval->setLocale(numberLocale);
46
47 // range widgets
48 const auto* plot = static_cast<const CartesianPlot*>(fitCurve->parentAspect());
49 const int xIndex = plot->coordinateSystem(m_fitCurve->coordinateSystemIndex())->index(CartesianCoordinateSystem::Dimension::X);
50 m_dateTimeRange = (plot->xRangeFormat(xIndex) != RangeT::Format::Numeric);
51 if (!m_dateTimeRange) {
52 ui.leMin->setText(numberLocale.toString(m_fitData->fitRange.start()));
53 ui.leMax->setText(numberLocale.toString(m_fitData->fitRange.end()));
54 ui.leEvalMin->setText(numberLocale.toString(m_fitData->evalRange.start()));
55 ui.leEvalMax->setText(numberLocale.toString(m_fitData->evalRange.end()));
56 } else {
57 ui.dateTimeEditMin->setMSecsSinceEpochUTC(m_fitData->fitRange.start());
58 ui.dateTimeEditMax->setMSecsSinceEpochUTC(m_fitData->fitRange.end());
59 ui.dateTimeEditEvalMin->setMSecsSinceEpochUTC(m_fitData->evalRange.start());
60 ui.dateTimeEditEvalMax->setMSecsSinceEpochUTC(m_fitData->evalRange.end());
61 }
62 // changing data range not supported by ML
63 if (fitData->algorithm == nsl_fit_algorithm_ml)
64 ui.cbAutoRange->setEnabled(false);
65
66 ui.leMin->setVisible(!m_dateTimeRange);
67 ui.leMax->setVisible(!m_dateTimeRange);
68 ui.lXRange->setVisible(!m_dateTimeRange);
69 ui.leEvalMin->setVisible(!m_dateTimeRange);
70 ui.leEvalMax->setVisible(!m_dateTimeRange);
71 ui.lEvalRange->setVisible(!m_dateTimeRange);
72 ui.dateTimeEditMin->setVisible(m_dateTimeRange);
73 ui.dateTimeEditMax->setVisible(m_dateTimeRange);
74 ui.lXRangeDateTime->setVisible(m_dateTimeRange);
75 ui.dateTimeEditEvalMin->setVisible(m_dateTimeRange);
76 ui.dateTimeEditEvalMax->setVisible(m_dateTimeRange);
77 ui.lEvalRangeDateTime->setVisible(m_dateTimeRange);
78
79 // auto range
80 ui.cbAutoRange->setChecked(m_fitData->autoRange);

Callers

nothing calls this directly

Calls 15

autoRangeChangedMethod · 0.95
autoEvalRangeChangedMethod · 0.95
setLocaleMethod · 0.80
parentAspectMethod · 0.80
coordinateSystemIndexMethod · 0.80
xRangeFormatMethod · 0.80
setMSecsSinceEpochUTCMethod · 0.80
setIconMethod · 0.45
setVisibleMethod · 0.45
setTextMethod · 0.45
toStringMethod · 0.45
indexMethod · 0.45

Tested by

no test coverage detected