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

Method updatePoint

src/backend/datapicker/DatapickerCurve.cpp:437–491  ·  view source on GitHub ↗

! Update datasheet for corresponding curve-point, it is called every time whenever there is any change in position of curve-point or its error-bar so keep it undo unaware no need to create extra entry in undo stack */

Source from the content-addressed store, hash-verified

435 no need to create extra entry in undo stack
436*/
437void DatapickerCurve::updatePoint(const DatapickerPoint* point) {
438 Q_D(DatapickerCurve);
439
440 if (m_supressResizeDatasheet)
441 return;
442
443 // TODO: this check shouldn't be required.
444 // redesign the retransform()-call in load() to avoid it.
445 if (!parentAspect())
446 return;
447
448 auto* datapicker = static_cast<Datapicker*>(parentAspect());
449 int row = indexOfChild<DatapickerPoint>(point, ChildIndexFlag::IncludeHidden);
450
451 const auto xDateTime = datapicker->xDateTime();
452 if ((m_datetime && !xDateTime) || (!m_datetime && xDateTime))
453 updateColumns(xDateTime);
454
455 Vector3D data = datapicker->mapSceneToLogical(point->position());
456
457 if (d->posXColumn) {
458 if (xDateTime) {
459 auto dt = QDateTime::fromMSecsSinceEpoch(data.x());
460 dt.setTimeSpec(Qt::TimeSpec::UTC);
461 d->posXColumn->setDateTimeAt(row, dt);
462 } else
463 d->posXColumn->setValueAt(row, data.x());
464 }
465
466 if (d->posYColumn)
467 d->posYColumn->setValueAt(row, data.y());
468
469 if (d->posZColumn)
470 d->posZColumn->setValueAt(row, data.y());
471
472 if (d->plusDeltaXColumn) {
473 data = datapicker->mapSceneLengthToLogical(QPointF(point->plusDeltaXPos().x(), 0));
474 d->plusDeltaXColumn->setValueAt(row, std::abs(data.x()));
475 }
476
477 if (d->minusDeltaXColumn) {
478 data = datapicker->mapSceneLengthToLogical(QPointF(point->minusDeltaXPos().x(), 0));
479 d->minusDeltaXColumn->setValueAt(row, std::abs(data.x()));
480 }
481
482 if (d->plusDeltaYColumn) {
483 data = datapicker->mapSceneLengthToLogical(QPointF(0, point->plusDeltaYPos().y()));
484 d->plusDeltaYColumn->setValueAt(row, std::abs(data.y()));
485 }
486
487 if (d->minusDeltaYColumn) {
488 data = datapicker->mapSceneLengthToLogical(QPointF(0, point->minusDeltaYPos().y()));
489 d->minusDeltaYColumn->setValueAt(row, std::abs(data.y()));
490 }
491}
492
493void DatapickerCurve::updateColumns(bool datetime) {
494 m_datetime = datetime;

Callers

nothing calls this directly

Calls 9

xDateTimeMethod · 0.80
positionMethod · 0.80
xMethod · 0.80
QPointFClass · 0.70
mapSceneToLogicalMethod · 0.45
setDateTimeAtMethod · 0.45
setValueAtMethod · 0.45
yMethod · 0.45

Tested by

no test coverage detected