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

Method setFitData

src/frontend/widgets/FitParametersWidget.cpp:41–189  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39}
40
41void FitParametersWidget::setFitData(XYFitCurve::FitData* data) {
42 DEBUG(Q_FUNC_INFO);
43 m_initializing = true;
44 m_fitData = data;
45
46 int np = m_fitData->paramNames.size();
47 DEBUG("# params = " << np);
48 DEBUG("# start values = " << m_fitData->paramStartValues.size());
49 const auto numberLocale = QLocale();
50 if (m_fitData->modelCategory != nsl_fit_model_custom) { // pre-defined models
51 ui.tableWidget->setRowCount(np);
52
53 for (int i = 0; i < np; ++i) {
54 // name
55 auto* item = new QTableWidgetItem(m_fitData->paramNamesUtf8.at(i));
56 item->setFlags(item->flags() ^ Qt::ItemIsEditable);
57 item->setBackground(QApplication::palette().color(QPalette::Window));
58 ui.tableWidget->setItem(i, 0, item);
59
60 // start value
61 auto* le = new QLineEdit(ui.tableWidget);
62 le->setValidator(new QDoubleValidator(le));
63 le->setFrame(false);
64 le->insert(numberLocale.toString(m_fitData->paramStartValues.at(i)));
65 ui.tableWidget->setCellWidget(i, 1, le);
66 connect(le, &QLineEdit::textChanged, this, &FitParametersWidget::startValueChanged);
67
68 // fixed
69 auto* widget = new QWidget();
70 auto* cb = new QCheckBox();
71 cb->setChecked(m_fitData->paramFixed.at(i));
72 auto* cbl = new QHBoxLayout(widget);
73 cbl->addWidget(cb);
74 cbl->setAlignment(Qt::AlignCenter);
75 cbl->setContentsMargins(0, 0, 0, 0);
76 widget->setLayout(cbl);
77 ui.tableWidget->setCellWidget(i, 2, widget);
78 connect(cb, &QCheckBox::stateChanged, this, &FitParametersWidget::changed);
79
80 // limits
81 le = new QLineEdit(ui.tableWidget);
82 le->setValidator(new QDoubleValidator(le));
83 le->setFrame(false);
84 if (m_fitData->paramLowerLimits.at(i) > -std::numeric_limits<double>::max())
85 le->insert(numberLocale.toString(m_fitData->paramLowerLimits.at(i)));
86 ui.tableWidget->setCellWidget(i, 3, le);
87 connect(le, &QLineEdit::textChanged, this, &FitParametersWidget::lowerLimitChanged);
88
89 le = new QLineEdit(ui.tableWidget);
90 le->setValidator(new QDoubleValidator(le));
91 le->setFrame(false);
92 if (m_fitData->paramUpperLimits.at(i) < std::numeric_limits<double>::max())
93 le->insert(numberLocale.toString(m_fitData->paramUpperLimits.at(i)));
94 ui.tableWidget->setCellWidget(i, 4, le);
95 connect(le, &QLineEdit::textChanged, this, &FitParametersWidget::upperLimitChanged);
96 }
97 ui.tableWidget->setCurrentCell(0, 1);
98 } else { // custom model

Callers 15

mainFunction · 0.45
setCurvesMethod · 0.45
updateLocaleMethod · 0.45
xDataColumnChangedMethod · 0.45
yDataColumnChangedMethod · 0.45
updateModelEquationMethod · 0.45
parametersChangedMethod · 0.45
recalculateClickedMethod · 0.45
enableRecalculateMethod · 0.45
testLinearNorrisMethod · 0.45

Calls 8

insertMethod · 0.80
setLayoutMethod · 0.80
sizeMethod · 0.45
setRowCountMethod · 0.45
flagsMethod · 0.45
colorMethod · 0.45
toStringMethod · 0.45
isEmptyMethod · 0.45

Tested by 15

testLinearNorrisMethod · 0.36
testLinearPontiusMethod · 0.36
testLinearNoInt1Method · 0.36
testLinearNoInt1_2Method · 0.36
testLinearNoInt2Method · 0.36
testLinearNoInt2_2Method · 0.36
testLinearFilipMethod · 0.36
testLinearWampler1Method · 0.36
testLinearWampler2Method · 0.36