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

Method finalizeImport

src/backend/spreadsheet/Spreadsheet.cpp:1533–1739  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1531}
1532
1533void Spreadsheet::finalizeImport(size_t columnOffset,
1534 size_t startColumn,
1535 size_t endColumn,
1536 const QString& dateTimeFormat,
1537 AbstractFileFilter::ImportMode columnImportMode) {
1538 PERFTRACE(QLatin1String(Q_FUNC_INFO));
1539 Q_D(Spreadsheet);
1540 // DEBUG(Q_FUNC_INFO << ", start/end col = " << startColumn << " / " << endColumn);
1541
1542 CleanupNoArguments cleanup([d]() {
1543 d->m_usedInPlots.clear();
1544 d->m_involvedColumns.clear();
1545 });
1546
1547 // determine the dependent plots
1548 if (columnImportMode == AbstractFileFilter::ImportMode::Replace) {
1549 for (size_t n = startColumn; n <= endColumn; n++) {
1550 auto* column = this->column((int)(columnOffset + n - startColumn));
1551 if (column) {
1552 column->addUsedInPlots(d->m_usedInPlots);
1553 if (!d->m_involvedColumns.contains(column))
1554 d->m_involvedColumns.append(column);
1555 }
1556 }
1557 }
1558
1559 if (columnImportMode == AbstractFileFilter::ImportMode::Replace) {
1560 // suppress retransform in the dependent plots
1561 for (auto* plot : d->m_usedInPlots)
1562 plot->setSuppressRetransform(true);
1563 }
1564
1565 // set the comments for each of the columns if datasource is a spreadsheet
1566 const int rows = rowCount();
1567 for (size_t col = startColumn; col <= endColumn; col++) {
1568 // DEBUG(Q_FUNC_INFO << ", column " << columnOffset + col - startColumn);
1569 Column* column = this->column((int)(columnOffset + col - startColumn));
1570 DEBUG(Q_FUNC_INFO << ", type " << ENUM_TO_STRING(AbstractColumn, ColumnMode, column->columnMode()))
1571
1572 if (!d->suppressSetCommentFinalizeImport) {
1573 QString comment;
1574 switch (column->columnMode()) {
1575 case AbstractColumn::ColumnMode::Double:
1576 comment = i18np("double precision data, %1 element", "numerical data, %1 elements", rows);
1577 break;
1578 case AbstractColumn::ColumnMode::Integer:
1579 comment = i18np("integer data, %1 element", "integer data, %1 elements", rows);
1580 break;
1581 case AbstractColumn::ColumnMode::BigInt:
1582 comment = i18np("big integer data, %1 element", "big integer data, %1 elements", rows);
1583 break;
1584 case AbstractColumn::ColumnMode::Text:
1585 comment = i18np("text data, %1 element", "text data, %1 elements", rows);
1586 break;
1587 case AbstractColumn::ColumnMode::Month:
1588 comment = i18np("month data, %1 element", "month data, %1 elements", rows);
1589 break;
1590 case AbstractColumn::ColumnMode::Day:

Callers

nothing calls this directly

Calls 15

columnMethod · 0.95
rowCountFunction · 0.85
addUsedInPlotsMethod · 0.80
appendMethod · 0.80
setCommentMethod · 0.80
setUndoAwareMethod · 0.80
suppressSignalsMethod · 0.80
clearMethod · 0.45
containsMethod · 0.45
columnModeMethod · 0.45
outputFilterMethod · 0.45

Tested by

no test coverage detected