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

Method updatePreview

src/frontend/spreadsheet/AddSubtractValueDialog.cpp:600–679  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

598}
599
600void AddSubtractValueDialog::updatePreview() {
601 if (!ui.framePreview->isVisible() || !m_previewDirty)
602 return;
603
604 QApplication::processEvents(QEventLoop::AllEvents, 0);
605 WAIT_CURSOR;
606
607 if (!m_project)
608 initPreview();
609
610 // y for the result curve - copy the original data into the result column and process it
611 m_yColumnResult->setColumnMode(m_columns.constFirst()->columnMode()); // set the mode to its original value, it was potentially changed in generateForColumn
612 m_yColumnResult->copy(m_columns.constFirst());
613 generateForColumn(m_yColumnResult, 0);
614
615 auto valueType = static_cast<ValueType>(ui.cbType->itemData(ui.cbType->currentIndex()).toInt());
616 if (valueType == ValueType::Baseline) {
617 // x
618 int rows = m_spreadsheet->rowCount();
619 if (m_xColumnBaselineDirty) {
620 QVector<int> xData;
621 xData.resize(rows);
622 for (int i = 0; i < rows; ++i)
623 xData[i] = i;
624 m_xColumnBaseline->setIntegers(xData);
625 m_xColumnBaselineDirty = false;
626 }
627
628 // y
629 const auto* col = m_columns.constFirst();
630 QVector<double> baselineData(rows);
631 const auto* newData = static_cast<QVector<double>*>(m_yColumnResult->data());
632 switch (col->columnMode()) {
633 case AbstractColumn::ColumnMode::Integer: {
634 auto* data = static_cast<QVector<int>*>(col->data());
635 for (int i = 0; i < rows; ++i)
636 baselineData[i] = data->at(i) - newData->at(i);
637 break;
638 }
639 case AbstractColumn::ColumnMode::BigInt: {
640 auto* data = static_cast<QVector<qint64>*>(col->data());
641 for (int i = 0; i < rows; ++i)
642 baselineData[i] = data->at(i) - newData->at(i);
643 break;
644 }
645 case AbstractColumn::ColumnMode::Double: {
646 auto* data = static_cast<QVector<double>*>(col->data());
647 for (int i = 0; i < rows; ++i)
648 baselineData[i] = data->at(i) - newData->at(i);
649 break;
650 }
651 case AbstractColumn::ColumnMode::DateTime:
652 case AbstractColumn::ColumnMode::Day:
653 case AbstractColumn::ColumnMode::Month:
654 case AbstractColumn::ColumnMode::Text:
655 break;
656 }
657 m_yColumnBaseline->setValues(baselineData);

Callers

nothing calls this directly

Calls 14

setIntegersMethod · 0.80
isVisibleMethod · 0.45
setColumnModeMethod · 0.45
columnModeMethod · 0.45
copyMethod · 0.45
currentIndexMethod · 0.45
rowCountMethod · 0.45
resizeMethod · 0.45
dataMethod · 0.45
setValuesMethod · 0.45
setTextMethod · 0.45
resizeToMethod · 0.45

Tested by

no test coverage detected