comparison layer/RegionLayer.cpp @ 1423:62e908518c71 single-point

Update to Event api in place of Clipboard points
author Chris Cannam
date Fri, 08 Mar 2019 13:37:30 +0000
parents 2487521e857b
children c9fa16e41664
comparison
equal deleted inserted replaced
1422:6f51297a0250 1423:62e908518c71
1476 m_model->getPoints(s.getStartFrame(), s.getEndFrame()); 1476 m_model->getPoints(s.getStartFrame(), s.getEndFrame());
1477 1477
1478 for (RegionModel::PointList::iterator i = points.begin(); 1478 for (RegionModel::PointList::iterator i = points.begin();
1479 i != points.end(); ++i) { 1479 i != points.end(); ++i) {
1480 if (s.contains(i->frame)) { 1480 if (s.contains(i->frame)) {
1481 Clipboard::Point point(i->frame, i->value, i->duration, i->label); 1481 Event point(i->frame, i->value, i->duration, i->label);
1482 point.setReferenceFrame(alignToReference(v, i->frame)); 1482 to.addPoint(point.withReferenceFrame(alignToReference(v, i->frame)));
1483 to.addPoint(point);
1484 } 1483 }
1485 } 1484 }
1486 } 1485 }
1487 1486
1488 bool 1487 bool
1489 RegionLayer::paste(LayerGeometryProvider *v, const Clipboard &from, sv_frame_t /* frameOffset */, bool /* interactive */) 1488 RegionLayer::paste(LayerGeometryProvider *v, const Clipboard &from, sv_frame_t /* frameOffset */, bool /* interactive */)
1490 { 1489 {
1491 if (!m_model) return false; 1490 if (!m_model) return false;
1492 1491
1493 const Clipboard::PointList &points = from.getPoints(); 1492 const EventVector &points = from.getPoints();
1494 1493
1495 bool realign = false; 1494 bool realign = false;
1496 1495
1497 if (clipboardHasDifferentAlignment(v, from)) { 1496 if (clipboardHasDifferentAlignment(v, from)) {
1498 1497
1512 } 1511 }
1513 1512
1514 RegionModel::EditCommand *command = 1513 RegionModel::EditCommand *command =
1515 new RegionModel::EditCommand(m_model, tr("Paste")); 1514 new RegionModel::EditCommand(m_model, tr("Paste"));
1516 1515
1517 for (Clipboard::PointList::const_iterator i = points.begin(); 1516 for (EventVector::const_iterator i = points.begin();
1518 i != points.end(); ++i) { 1517 i != points.end(); ++i) {
1519 1518
1520 if (!i->haveFrame()) continue;
1521 sv_frame_t frame = 0; 1519 sv_frame_t frame = 0;
1522 1520
1523 if (!realign) { 1521 if (!realign) {
1524 1522
1525 frame = i->getFrame(); 1523 frame = i->getFrame();
1526 1524
1527 } else { 1525 } else {
1528 1526
1529 if (i->haveReferenceFrame()) { 1527 if (i->hasReferenceFrame()) {
1530 frame = i->getReferenceFrame(); 1528 frame = i->getReferenceFrame();
1531 frame = alignFromReference(v, frame); 1529 frame = alignFromReference(v, frame);
1532 } else { 1530 } else {
1533 frame = i->getFrame(); 1531 frame = i->getFrame();
1534 } 1532 }
1535 } 1533 }
1536 1534
1537 RegionModel::Point newPoint(frame); 1535 RegionModel::Point newPoint(frame);
1538 1536
1539 if (i->haveLabel()) newPoint.label = i->getLabel(); 1537 if (i->hasLabel()) newPoint.label = i->getLabel();
1540 if (i->haveValue()) newPoint.value = i->getValue(); 1538 if (i->hasValue()) newPoint.value = i->getValue();
1541 else newPoint.value = (m_model->getValueMinimum() + 1539 else newPoint.value = (m_model->getValueMinimum() +
1542 m_model->getValueMaximum()) / 2; 1540 m_model->getValueMaximum()) / 2;
1543 if (i->haveDuration()) newPoint.duration = i->getDuration(); 1541 if (i->hasDuration()) newPoint.duration = i->getDuration();
1544 else { 1542 else {
1545 sv_frame_t nextFrame = frame; 1543 sv_frame_t nextFrame = frame;
1546 Clipboard::PointList::const_iterator j = i; 1544 EventVector::const_iterator j = i;
1547 for (; j != points.end(); ++j) { 1545 for (; j != points.end(); ++j) {
1548 if (!j->haveFrame()) continue;
1549 if (j != i) break; 1546 if (j != i) break;
1550 } 1547 }
1551 if (j != points.end()) { 1548 if (j != points.end()) {
1552 nextFrame = j->getFrame(); 1549 nextFrame = j->getFrame();
1553 } 1550 }