| 1531 | } |
| 1532 | |
| 1533 | void 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: |
nothing calls this directly
no test coverage detected